设为首页 收藏本站
查看: 1534|回复: 0

[经验分享] httpd (apache) 配置文件(httpd.conf)英文对中文的详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-27 09:28:09 | 显示全部楼层 |阅读模式
最近几天看了一些关于httpd的书籍,顺便把学习到的知识记录下来,算不上很精通,
只是些皮毛,可以帮助一些英文不好的 刚接触Linux 下httpd的同学,有错的请评论纠正。


httpd特性和功能:
        事先创建进程
        按需求维持适当的进程
        模块化设计,核心比较小,各种功能都模块添加
        支持运行配置,支持单独编译模块
        支持多种方式的虚拟主机配置:(基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机)
        支持https协议(mod_ssl)
        支持用户认证
        支持基于IP或主机名的ACL
        支持每个目录的访问控制
        支持URL重写
       
httpd 是基于selinux(所以在安装必须把selinux关闭掉)

##查看apache配置文件的段落: grep "Section" httpd.conf
指令不分区字符大小写
value 则根据需要区分大小写
httpd 测试语法是否正确:httpd -t
apache 本地查看说明书安装httpd-manual包,游览器输入:IP/manual 即可查看说明书
查看httpd 支持的多道处理模块:  httpd -l / rpm -ql httpd | grep bin
修改默认启动的多道处理模块:vim /etc/sysconfig/httpd -->#HTTPD=/usr/sbin/httpd.worker

apache(httpd.conf 配置文件解释)

1.(全局配置)
ServerRoot "/etc/httpd" ---#apache工作目录
PidFile run/httpd.pid   ---#运行服务的PID进程
Timeout 60                ---#TCP三次握手连接超时时间
KeepAlive Off                        ---#是否使用长连接
MaxKeepAliveRequests 100---#打开长连接规定允许打开多少请求(设置0 代表无限制)
KeepAliveTimeout 15                ---#长连接超时断开时长

MPM:多道处理模块
                        mpm_winnt(windows)
                        prefork(一个请求用一个进程响应)
                        worker(一个请求用一个线程响应)--(启动多个进程,每个进程生成多个线程)
                        event(一个进程处理多个请求)
                       
<IfModule prefork.c>(prefork.c模块)---(以后参数可以根据自己测试确定)
StartServers       8   ----每次启动后启动8个进程
MinSpareServers    5   ----随时保证有5个空闲进程(当不足5个的时候,系统启动1个进程)
MaxSpareServers   20   ----最大空闲进程20个
ServerLimit      256   ----对最大客户端通同时请求数的限制
MaxClients       256   ----最大客户端同时请求(调整参数的时候必须调整ServerLimit)
MaxRequestsPerChild  4000 ----一个进程最大响应的次数
</IfModule>


<IfModule worker.c>(worker.c 模块) ---(以后参数可以根据自己测试确定)
StartServers         4     ----每次启动后启动4个进程
MaxClients         300           ----最大客户端同时请求
MinSpareThreads     25     ----最小空闲线程
MaxSpareThreads     75     ----最大空间线程
ThreadsPerChild     25     ----每个进程最多可以生成25个线程
MaxRequestsPerChild  0     ----每个进程响应多少请求(因为worker.c是线程来处理请求,所以进程是0)
</IfModule>

Listen 80(监听端口也可以IP加端口:127.0.0.1:8080)

2.主服务配置
DocumentRoot "/var/www/html"   ---网页根目录(URL路径和本地文件系统路径不是一码事)

options
       None:不支持任何选项
           Indexes:允许索引目录
       FollowSymLinks:允许访问符号链接的源文件
       Includes:允许执行服务器包含(SSI)
       ExecCGI:允许运行CGI脚本
           ALL:支持所有选项
          
          
order:用于定义基于主机的访问功能,IP,网络地址或主机定义访问控制机制
        Order allow,deny(特别注意allow 和deny 的顺序)
        Allow from all
        deny from        
例子:Order allow,deny allow from 192.168.0.0/24(只允许这个网段访问)

(访问项目基于用户认证控制)          
        AllowOverride AuthConfig   ----认证访问
        AuthType Basic                                ---认证方式
        AuthName "局部区域认证访问"                ---注释
        AuthUserFile "/etc/httpd/conf/htpasswd" ---认证用户的账户和密码文件
                                                                                             (创建htpasswd 文件用htpasswd -c -m /etc/httpd/conf/htpasswd 用户
      (-c 创建文件,如果文件有的话就不用加-c)        -m 表示用户密码已MD5加密)
        Require valid-user           ---认证文件的用户都可以访问
        Require user glory       ---只要认证的glory 用户访问
          
          
(访问项目基于组认证控制)          
    AllowOverride AuthConfig  ---认证访问
    AuthType Basic                        --认证方式
    AuthName "404"                        --认证注释
    AuthUserFile "/etc/httpd/conf/htpasswd"  ---认证账户和密码
    AuthGroupFile "/etc/httpd/conf/htgroup" ---认证组(组里面的账户必须在htpasswd 中存在)
          Require group myusers            ---认证组的名称
          
          

用户在家目录下创建自己的网页(默认是关闭的):          
                UserDir disabled(如果开启的话把这个加上#号)
                UserDir public_html(把这个#去掉即可) ---> 然后系统中添加用户(useradd glory)        --> 普通用户登录创建自己的网页目录(mkdir public_html/index.html)
                -->root 用户给public_html 执行的权限(chmod o+x /home/glory)
          
          
DirectoryIndex index.html index.html.var(目录索引)          
          
<Files ~ "^\.ht">  (表示项目中.ht 的文件不允许访问防止盗走)
   Order allow,deny
    Deny from all
    Satisfy All
</Files>


HostnameLookups Off(记录用户访问的IP,如果On的话,会去反解用户的主机名)

ErrorLog logs/error_log(定义错误日志)

(定义日志格式)
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" c     ombined (显示以此远端主机--远端登录名--远程用户名--时间--请求的第一行--状态--传送字节数--游览器)

LogFormat "%h %l %u %t \"%r\" %>s %b" common
(显示以此远端主机--远端登录名--远程用户名--时间--请求的第一行--状态--传送字节数)

LogFormat "%{User-agent}i" agent:(游览器)



Alias /luntan "/bbs/html"  (路径别名设置) --(别名斜杠要带都带要么不带)


虚拟主机(服务于多个不同的站点): 基于IP,基于端口,基于域名
基于IP,HOST的写法:IP1:80/IP2:80
基于端口HOST的写法:IP:80/IP:8080
基于域名HOST写法:*.80(ServerName 不同)

虚拟主机的定义:(使用虚拟主机必须把中心主机关闭,虚拟主机和中心主机不可一起使用,关闭中心主机方法:DocumentRoot注释即可)
基于IP的虚拟主机:
<VirtualHost 192.168.77.112:80>
        ServerName Hello.glory.com
        DocumentRoot "/web/glory.com"
                CustomLog /var/log/httpd/hello.glory.com/access_log combined
        ErrorLog /var/log/httpd/hello.glory.com/error_log
</VirtualHost>

<VirtualHost 192.168.77.113:80>
        ServerName www.glory.org
        DocumentRoot "/web/glory.org"
                CustomLog /var/log/httpd/www.glory.com/access_log combined
        ErrorLog /var/log/httpd/www.glory.com/error_log
                <Directory "/web/glory.org">        -----###(定义用户认证在虚拟主机中)
                Options none
                AllowOverride Authconfig
                AuthType basic
                AuthName "Restrict arae"
                AuthUserFile "/etc/httpd/.htpasswd"
                Require valid-user
        </Directory>                     ------#####
</VirtualHost>


基于端口的虚拟主机(端口8080一定要在配置文件中监听(Listen 8080),因为默认的监听的是80端口):
<VirtualHost 192.168.77.112:8080>
        ServerName www.b.net
        DocumentRoot "/web/b.net"
                CustomLog /var/log/httpd/www.b.net/access_log combined
        ErrorLog /var/log/httpd/www.b.net/error_log
</VirtualHost>


基于域名的虚拟主机
NameVirtualHost 192.168.77.113:80(开启基于域名虚拟主机)
<VirtualHost 192.168.77.113:80>
        ServerName www.c.gov(访问的域名)
        DocumentRoot "/web/c.gov" (程序目录)
        CustomLog /var/log/httpd/www.c.gov/access_log combined
        ErrorLog /var/log/httpd/www.c.gov/error_log
                <Directory "/web/c.gov">        ----###(虚拟主机中定义不让访问的IP)
                Options none
                AllowOverride none
                Order deny,allow
                Deny from 192.168.77.100  ——————####!
        </Directory>
</VirtualHost>


定义默认的虚拟主机(当用户输入没有的项目或者是虚拟主机解析到默认虚拟主机上去):
<VirtualHost _default_:80> (必须放在所有的虚拟主机最上面)
                DocumentRoot "/web/default"
</VirtualHost>


httpd 查看server-status信息(可以查看目前处理的请求):
<Location /server-status>  (默认这些都是#的,需要手动开启)
    SetHandler server-status
    Order allow,deny
    Allow from all/Allow from 192.168.77.100
</Location>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61042-1-1.html 上篇帖子: Apache与Nginx的优缺点比较 下篇帖子: 安装httpd时出现“No recognized SSL/TLS toolkit detected”错误解决 配置文件 英文 中文
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表