yum httpd安装详解:
1.安装httpd
yum -y install httpd
2.关闭selinux,iptables程序:
[root@localhost ~]# service iptables stop[root@localhost ~]# setenforce 0
3.查看下当前系统80端口是否被占用:
[root@localhost ~]# ss -tnlState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* LISTEN 0 100 ::1:25 :::* LISTEN 0 100 127.0.0.1:25 *:* [root@localhost ~]#
httpd基本配置和应用:
主配置文件:/etc/httpd/conf/httpd.conf
分段配置文件:/etc/httpd/conf.d/*.conf
服务脚本:/etc/rc.d/init.d/httpd
脚本的配置文件:/etc/sysconfig/httpd
模块文件目录:/etc/httpd/modules --> /usr/lib64/modules
主程序文件:/usr/sbin/httpd (prefork)
/usr/sbin/httpd.worker (worker)
/usr/sbin/httpd.event (event)
日志文件目录:/var/log/httpd
Access_log:访问日志文件
Error_log:错误日志
站点文档目录:/var/www/html
4.启动httpd:
[root@localhost ~]# service httpd restartStopping httpd: [ OK ]Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName [ OK ][root@localhost ~]#
启动时的报错信息:是无法当前使用主机的主机名。没有问题可以忽略。
而且此时的80端口已经启动监听,可以用浏览器来访问:
[root@localhost logs]# ss -tnlState Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 128 *:22 *:* LISTEN 0 100 ::1:25 :::* LISTEN 0 100 127.0.0.1:25 *:* [root@localhost logs]#
成功访问测试页面,因为没有主页,把403的页面定位在welcome.conf页面:
修改welcome.conf文件就会出来系统内部文件页面系统:
[root@localhost conf.d]# lsREADME welcome.conf.bak[root@localhost conf.d]#
修改之后复制一个文件进去会显示:
5.httpd主配置文件:
配置文件分割为3端:
[root@localhost conf.d]# grep "Section" /etc/httpd/conf/httpd.conf ### Section 1: Global Environment### Section 2: 'Main' server configuration### Section 3: Virtual Hosts[root@localhost conf.d]#
注意:Main server 和 Virtual hosts 不能同时启用:默认没有启动虚拟主机。
1.指定监听地址和端口:
1:省略ip表示本机所有可用ip地址;
2:可以指定多次,用于指明多个不同端口。
# Listen: Allows you to bind Apache to specific IP addresses and/or# ports, in addition to the default. See also the# directive.## Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses (0.0.0.0)##Listen 12.34.56.78:80Listen 80Listen 8080
2.持久连接:
持久连接:建立后每个资源获取结束不会断开连接,而继续下去到结束;
断开:
数量:100
时间:60秒
KeepAlive Off ## MaxKeepAliveRequests: The maximum number of requests to allow# during a persistent connection. Set to 0 to allow an unlimited amount.# We recommend you leave this number high, for maximum performance.#MaxKeepAliveRequests 100 ## KeepAliveTimeout: Number of seconds to wait for the next request from the# same client on the same connection.#KeepAliveTimeout 15
非持久:每个资源单独专用连接获取:
3.MPM多处理模块:并发请求响应模型
/etc/sysconfig/httpd:修改模块地方。
httpd -l:查看静态模块
httpd -m:查看动态模块
httpd -t -D DUMP_MODULES
prefock://如果加载了这个模块,就实现一下配置,一个条件化模块加载StartServers 8 //服务在启动时默认启动几个子进程MinSpareServers 5 //最小空闲进程数量MaxSpareServers 20 //最大空闲进程数量ServerLimit 256 //限制MaxClients 最大活动进程MaxClients 256 //最大并发量,就是同时访问数量MaxRequestsPerChild 4000 //每个子进程最多能处理的请求数量,处理够数量后就被kill然后重新启动
worker:StartServers 2 //服务器启动时建立的子进程数,默认值是"3"。MaxClients 150 //允许同时伺服的最大接入请求数量(最大线程数量)MinSpareThreads 25 //最小空闲进程 MaxSpareThreads 75 //最大空闲进程ThreadsPerChild 25 //每个子进程建立的常驻的执行线程数MaxRequestsPerChild 0 //设置每个子进程在其生存期内允许伺服的最大请求数量.0是不会结束。
4.模块加载:DSO
loadMoudle <moudle_name><moudle_path>
LoadModule auth_basic_module modules/mod_auth_basic.soLoadModule auth_digest_module modules/mod_auth_digest.soLoadModule authn_file_module modules/mod_authn_file.soLoadModule authn_alias_module modules/mod_authn_alias.soLoadModule authn_anon_module modules/mod_authn_anon.soLoadModule authn_dbm_module modules/mod_authn_dbm.soLoadModule authn_default_module modules/mod_authn_default.soLoadModule authz_host_module modules/mod_authz_host.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule authz_owner_module modules/mod_authz_owner.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_dbm_module modules/mod_authz_dbm.soLoadModule authz_default_module modules/mod_authz_default.soLoadModule ldap_module modules/mod_ldap.soLoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule include_module modules/mod_include.soLoadModule log_config_module modules/mod_log_config.soLoadModule logio_module modules/mod_logio.so
5.定义main,主页文件路径
DocumentRoot "/var/www/html"
6.站点访问路径控制:
文件系统路径:
<Directory “/PATH/TO?SOMEDIR”>
</Directory>
7.directory定义:
Optiones
i. Indexes:当访问的路径下没有主页面,也没有资源,就用列表形式呈现。
ii. 如果有某页面文件指向DocumentRoot之外的文件,照样显示文件。
iii. None 关闭
iv. All 都启用
Order:检查次序
Order Allow Deny 明确Allow才允许,其他为Deny
8.定义默认主页面
DirectoryIndex index.html index.html.var
自左而右的次序
9.路径别名:
比如:Alias /bbs/ “/web/bbs/htdocs/”
如果访问bbs 则直接指向web/bbs/htdocs
10.默认字符集:
AddDefaultCharset UTF-8
11.基于用户的访问控制:
质询:www-Authenticate:服务器用401拒绝客户请求,说明需要用户提供用户名,密码,淡出对话框。
认证:客户端用户填入账号密码,再次发送请求。
比如:/var/www/html/iamges 不能访问
1.定义配置:
Options Indexes AllowOverride None AuthType Basic AuthName "iamges" AuthUserFile /etc/httpd/users/.htpasswd Require valid-user
2.htpasswd
[root@localhost ~]# mkdir /etc/httpd/users[root@localhost ~]# htpasswd -c -m /etc/httpd/users/.htpasswd hzmNew password: Re-type new password: Adding password for user hzm
3.测试访问
12.虚拟主机:
http三种类型虚拟主机:ip,端口,域名。
ServerName www.a.com ServerAlias a.com DocumentRoot /vhosts/a.com/ ServerName www.b.com ServerAlias b.com DocumentRoot /vhosts/b.com/ [root@localhost users]# curl www.a.com www.aww.a.com
[root@localhost users]# curl www.b.comwww.b.com
[root@localhost users]#