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

[经验分享] Apache配置介绍

[复制链接]

尚未签到

发表于 2018-11-21 06:36:42 | 显示全部楼层 |阅读模式
Apache在互联网上非常广泛的web服务程序,在Linux系统上是httpd的服务器名称。而且属于开源程序,可以跨平台使用,经过多次修改,成为世界使用排名第一的Web服务器软件。
Apache的安装:
配置yum源,系统光盘上直接提供rmp包,centos7上版本2.4以上。2.4新加了很多特性,模块化管理为维护提供了很多方便之处。这里就centos6上的2.2.15版本来说明。
工作特性:
Apache的工作方式有3种:prefork,worker,event。
prefork:多进程工作,一个主进程生成多个子进程一个子进程相应一个请求,主进程接受请求但并不处理而是把请求交给下面的子进程。在Apache启动后预先生成多个空闲进程来响应用户的请求,还会生保证一定数量的空闲进程来应对迎接新的请求。一个进程响应请求资源就有一次I/O,到一定数量级的时候势必会影响性能,但如果其中一个进程出现问题不会影响其他进程,所以它极其稳定。
worker:多线程工作,主进程生成多个子进程,子进程生成多个线程,每个线程响应一个请求,而且在系统资源开销上小于进程并共享内存资源。在高流量的情况下这个工作模式更为适合,但如果其中一个线程“挂”掉会殃及其他线程和在它之上的进程。
event:事件驱动模式,主进程生成多个子进程,子进程再生成多个线程,而线程能响应N个请求。它是在worker基础之上的的改进,在2.2的版本中还处于测试状态。到2.4版本之后才正式使用。
默认安装的目录:
服务脚本:/etc/rc.d/init.d/httpd
配置文件目录:/etc/httpd/conf/ ,
主程序目录:/usr/sbin/httpd      httpd.worker  httpd.event
模块文件目录/usr/lib64/httpd/modules/
日志文件目录:/var/log/httpd/
           access_log:访问日志.     error_log:错误日志
在配置中主要就是对/etc/httpd/conf/httpd.conf文件进程配置下面是文件中常用的配置内容:(安装后的默认配置)
#
ServerRoot "/etc/httpd"      注释:主工作目录
#
PidFile run/httpd.pid           注释:PID文件目录
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 60           注释:超时时间,定义接收或者发送超时的时间.
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive Off  注释:保持连接选项开启或关闭.on或off
#
MaxKeepAliveRequests 100    注释:保持连接时可以最大请求的请求数量.
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 15        注释:保持连接的时间,单位是秒,超过这里定义的时间连接断开.建议不要过长2-5秒即可.
##
## Server-Pool Size Regulation (MPM specific)
##
# prefork MPM         
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# ServerLimit: maximum value for MaxClients for the lifetime of the server
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
             注释:prefork的工作模式配置,只有工作在此模式下有效否则无效.
StartServers       8              注释:开启服务时启动的进程数量.
MinSpareServers    5             注释:子进程最小进程空闲数量.如果不够此设置的值父进程将会创建出子进程到这个值的数量.
MaxSpareServers   20              注释:子进程最大空闲的数量,当空闲子进程超过这里设定的值后时候,父进程将回收空闲的子进程
ServerLimit      256              注释:最大的活动进程数量.
MaxClients       256              注释:最大的请求数量,此设置不能超过serverlimit
MaxRequestsPerChild  4000         注释:子进程在工作周期内最大响应的请求数量.如超过此数量后子进程将会被回收.


# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
                    注释:worker工作模式配置,工作在此模式有效否则无效.
StartServers         4                  注释:启动服务后创建的进程数量.
MaxClients         300                  注释:最大的并发请求数量
MinSpareThreads     25                  注释:最小空闲线程数量.
MaxSpareThreads     75                  注释:最大空闲线程数量.
ThreadsPerChild     25                  注释:子进程最多生成线程的数量.
MaxRequestsPerChild  0                  注释:子进程最多响应请求的数量,0表示不限定.

#Listen 12.34.56.78:80
Listen 80                   注释:监听的端口,可以设置多个端口.
# LoadModule foo_module modules/mod_foo.so             注释:加载的模块,名称和模块路径.如不需要加载可以在前面加#号注释.
#
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
省略…………
# Load config files from the config directory "/etc/httpd/conf.d".
#
Include conf.d/*.conf             注释:加载conf文件,开启服务时会加载/etc/httpd/conf.d/下面的所有以.conf结尾的配置文件
User apache                       注释:运行Apache的用户名
Group apache                      注释:运行Apache的组名


                          注释:访问控制区域定义.
    Options Indexes FollowSymLinks    注释:options 设置: Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews  None, All
    AllowOverride None                   注释: 是否去找.htacess文件作为配置文件.
    Order allow,deny                    注释:访问控制顺序,先看allow允许访问的列表,再检查deny的列表
    Allow from all                      注释:allow定义是all就是允许所有,可以使用IP地址和网络地址进程控制.


    注释:用户目录站点开启与否检查
    UserDir disabled         注释:如果开启,可以通过http://URL//~username/ 的形式来访问系统中每个用户的私人站点


ErrorLog logs/error_log         注释:错误日志文件存放路径和名称,可自己定义.
LogLevel warn                 注释:错误日志级别
#
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#CustomLog logs/access_log common
#
#
CustomLog logs/access_log combined           注释:访问日志存放路径和文件名称,combined是日志格式. 格式参考logformat


#
Alias /icons/ "/var/www/icons/"               注释:路径别名.访问/icons/的时候实际目录位置为/var/www/icons/.
#
#
DocumentRoot "/usr/local/apache2/htdocs"      注释:网站文件存放目录.
#
#
DirectoryIndex index.html index.html.var      注释:默认主页文件,按照从左到右的文件匹配,文件存在且最先匹配的为默认主页.
#
#
AddDefaultCharset UTF-8          注释:默认字符集.
#
#            注释:虚拟主机,*为IP地址.80是监听的端口号.其中以下配置和以上提到的配置功能一样.
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#
logformat的说明:
              %h:客户端IP地址
              %l:客户端用户名,-表示空
              %u:认证用户.-表示空
              %t:访问时间,服务器收到请求时的时间.
              %r:请求报文的首行信息.
              %s>s:响应状态码
              %b:响应报文的大小,单位是字节,不包括响应报文首部
             %{referer}i:请求报文中"referer"的首部值,当前资源的访问入口,即从哪个页面中的超链接跳转而来,-表示用户直接键入的URL
%{User-Agent}i:请求报文中"User-Agent"首部的值,即发出请求用到的应用程序.
虚拟主机的工作方式有三种:基于IP,基于主机名,和基于端口号,在VirtualHost定义的时候区别即可,比如,基于IP的主机
,在访问的时候输入对应的IP即访问对应的虚拟主机,前提是你需要有对应的IP地址在你的网卡上面.基于端口号,IP可以是同一个IP不过是端口的区分,基于主机名同理.
Apache工作模式的切换:
   Apache在安装后默认的工作模式是perfork,在Linux系统下可以使用httpd –l查看, 如果查看当前模块的动态还是静态加载的可以使用httpd -M
DSC0000.jpg

在工作模式上Apache已经准备好了worker和event,在命令行输入httpd按tab键2此就可以列出来
DSC0001.jpg

如需切换工作模式要修改/etc/sysconfig/httpd文件,找到 #HTTPD=/usr/sbin/httpd.worker 把前面的#好去掉即可,然后重启Apache服务.
DSC0002.jpg

同样的道理如果使用event则把后面的httpd.worker更改为httpd.event。但在2.2的版本中不建议使用event的模式因为还处于测试当中可以看文档也并没有在下面增列出event。如果要使用event更新为2.4的版本。
重启服务后可以用pa aux 查看:
DSC0003.jpg

要切换会prefork再把刚才的HTTPD=/usr/sbin/httpd.worker注释掉重启服务即可。




运维网声明 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-637486-1-1.html 上篇帖子: apache 目录认证 下篇帖子: Apache模块 mod_expires
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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