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

[经验分享] apache配置文件1-zhangyuhe2的博客

[复制链接]

尚未签到

发表于 2018-11-17 09:36:15 | 显示全部楼层 |阅读模式
  [root@zabbix ]#yum –y installl httpd            #安装httpd,这是从163上下载的
  [root@zabbix yum.repos.d]# rpm -q httpd         #查看安装的版本
  httpd-2.2.15-60.el6.centos.6.x86_64
  [root@zabbix yum.repos.d]# rpm –ql  httpd | head     #查看生成的文件
  配置文件
  /etc/httpd/conf/httpd.conf   #主配置文件
  /etc/httpd/conf.d/*.conf      #扩展配置文件
  服务脚本目录
  /etc/rc.d/init.d/httpd    #服务脚本
  /etc/sysconfig/httpd    #服务脚本的配置文件
  主程序文件:
  /usr/sbin/httpd
  /usr/sbin/httpd.event
  /usr/sbin/httpd.worker
  日志文件:
  [root@zabbix httpd]# ls /var/log/httpd/
  access_log    访问日志
  error_log      错误日志
  文档根目录
  /var/www/html
  CGI目录:/var/www.cgi-bin/
  模块与运行文件:
  /etc/httpd/modules  #模块文件,链接指向/usr/lib64/httpd/modules
  /etc/httpd/run      #保存运行时的pid,也是一个链接,指向/var/run/httpd
DSC0000.jpg

  如上:会看到有8个进程,只有第一个root运行,其实运行的都是apache用户,为什么?因为在主机上注册小于1023的端口只有管理员有权限,这个进程并不会直接响应用户请求,其余的7个进程是工作进程,真正工作的进程是这个7个。
DSC0001.jpg

  如下:当我们启动httpd服务之后,其实就可以直接访问了,就像上图一样,要注意,这并不是默认主页,而是测试主页,为什么呢?在上图当中,我们并没有请求资源 ,但是显示了一个apache的欢迎主页,此页面位于/etc/httpd/conf.d里面,如下面的操作,当我们把此此欢迎文件的后缀名给改了:
  [root@zabbix yum.repos.d]# cd /etc/httpd/conf.d
  [root@zabbix conf.d]# mv welcome.conf{,.bak}          #此操作就是改名,welcome与中括号之间没有空格

  [root@zabbix conf.d]# service httpd>  再次访问,会出现下面的情况,欢迎主页没有了,httpd服务直接将/var/www里面文件都列出来了,这种操作是十分危险的,因为用户可以随意访问哪个html文件!这是httpd默认的一种机制,我们会在下面讨论如果关闭这种机制。
DSC0002.jpg

  启动时报错的解决办法

  在启动httpd时报错:httpd:httpd: Could not>  (无法可靠地确定服务器的完全限定域名)解决方法把主配置文件当中的这一行如实填写:
  276 ServerName www.magedu.com:80
  主配置文件格式介绍
  主配置文件:/etc/httpd/conf/httpd.conf                 #格式:配置参数   值
  NOTE:
  ü  配置指令不区大小写
  ü  值有可能区分大小写,为路径时,取决于文件系统,文件系统区分大小写,这里就区分。
  ü  有些指令可以重复出现多次
  FORMAT:
  [root@zabbix ~]# grep "Section" /etc/httpd/conf/httpd.conf   #查看配置文件的段落格式
  ### Section 1: Global Environment        全局环境配置
  ### Section 2: 'Main' server configuration 主机配置:用于仅提供一个站点时使用
  ### Section 3: Virtual Hosts       虚拟主机配置:一个主机可供多个站点,虚拟主机与主机配置只能有一个启用
h ttpd常用配置概述:
  1.    语法测试
  2.    更改侦听的IP加端口,可出现多次,也就是说可以侦听多个IP和端口
  3.    持久连接开启以及两种限制方法,并且做一个测试
  4.    MPM(多道处理模块),查看静态编译的模块
  l  GRAMMER  TEST(语法测试):
  当我们修改完配置文件之后要进行语法测试,如果不经测试直接重读配置文件或重启服务的话会失败!
  [root@zabbix ~]# service httpd configtest          #这两条命令选一测试即可,测试成功会有systax OK的字样出现
  [root@zabbix ~]# httpd -t
  绝大多数配置修改后,可以通过service httpd roload来生效,如果修改了侦听的IP和端口,必须重启生效!!
  l  EXAMPLE
  Listen  80            #此配置就是默认侦听到80端口,可以出现多次
  Listen 8080           #再出现一次,把8080端口一块给侦听了
  note:其实此配置的格式是这样的Listen  1.2.3.4:80,如果没写IP 的话,就默认侦听到主机上所有IP的80和8080端口.
  l  持久连接
  [root@zabbix ~]# vim /etc/httpd/conf/
  Listen 80   #侦听到哪个端口,默认侦听所有IP,也可以写成这样Listen 1.2.3.1:8080
  KeepAlive Off  #是否开启持久连接,默认关闭
  MaxKeepAliveRequests 100  #当开启持久连接后的优化措施,限制最大请求数100个请求,这是默认值
  KeepAliveTimeout 15         #当开启持久连接后的优化措施,超时机制15秒,这是默认值,不要太大
  NOTE:持久连接一旦开启,断开只有两个标准,超时和限制最大请求数。我们一定要注意,使用持久连接的副作用就是前面的用户一直建立连接,后面的用户被拒绝服务,这是有很有可能发生的。如果关闭了持久连接又会造成带宽的浪费,所以中庸又出现了,一个折衷的办法就是把持久连接的超时设的少一点,那么设置多少好呢?这个要根据服务器的性能来调整,如果服务器的性能很好,带宽很足,可以把持久连接调整为2秒,默认就是15秒。
  telnet服务与所有的明文文本类服务都是支持的,使用telnet可以获取httpd服务的资源,也可以获取ftp或者tftp的资源,所以我们在做用linux获取httpd服务的资源时也可以使用telnet,比如我们可以像下文当中那样,我们手动输出获取什么资源:
  [root@zabbix]telnet 192.168.0.1 80
  GET  /test.html  HTTP/1.1    #获取一个资源,然后指明版本,HTTP必须大写
  Host:192.168.0.1            #然后指明获取哪个主机的资源33
  如果不使用持久连接的话,获取资源之后就立马断开了,如果使用持久连接的话,获取资源之后不会断开,还可以继续请求资源,直到超时时间到了服务器会自动断开。
  一般tcp连接是谁请求谁断开,但是httpd服务可以自己强行与客户端断开。
  l  MPM(多道处理模块)
  httpd2.2只能同时使用一个模块,想要使用其他的模块只能重新编译。http2.4可编译时可以把三个模块都编译进去,在运行的时候可以随意的切换。rpm包会帮我们提供三个二进制程序可以实现三种MPM模块的机制。
  [root@zabbix yum.repos.d]# httpd –l    # httpd –l查看编译到内核当中的模块,这个模块并不包括DSO(动态共享模块)模块
  core.c    #核心
  prefork.c  #仅支持preform,只能有一种多道处理模块,编译后不能修改,使用ps aux | grep httpd来的准确
  http_core.c  #http协议的核心
  mod_so.c   #支持DSO的机制,也就是说支持模块动态安装和卸载的功能,这也是其他功能能够整合到httpd当中的原因
  其实通过ps aux } grep httpd也可以查看到当前运行的是哪一个MPM模块,如下所示:
DSC0003.jpg

  上图所示,当前运行的MPM为/usr/sbin/httpd代理这是prefork的工作模式,如果是worker或者event的话,那么在程序名也会有所体现。
  那么哪些模块可以动态的装载进httpd呢?
  通过httpd  -M列出已经装载的所有DSO及非DSO模块
  通过httpd  -l(小L)列出支持使用的非DSO模块
  [root@zabbix httpd]# httpd –M       #列出所有的模块(前四行就是集成到核心的四个静态模块,而shared就是动态共享模块)
  so_module (static)   #非DSO模块
  auth_basic_module (shared)  #带shared是DSO模块
  模块两类: 一是MPM模块,另一种是DOS可动态装载的模块,所以
  [root@zabbix yum.repos.d]# httpd    #2.2版本其实支持三种,event是测试的,其余的两种都是支持的,三个模块位于/usr/sbin/下
  httpd         httpd.event   httpd.worker
  默认是使用httpd,我们如果想使用worker模块的话要编辑/etc/sysconfig/httpd(httpd的脚本配置文件)当中的:#HTTPD=/usr/sbin/httpd.worker,把前面的#去掉,然后重启服务文件就可以使用worker了,默认注释的话就是使用httpd,也就是prefork。把注释去掉之后,使用ps aux结果如下:
  root       2160  0.0  0.1 175548  3940 ?        Ss   00:05   0:00 /usr/sbin/httpd.worker
  apache     2163  0.0  0.1 519808  5332 ?        Sl   00:05   0:00 /usr/sbin/httpd.worker
  apache     2164  0.0  0.1 519808  5320 ?        Sl   00:05   0:00 /usr/sbin/httpd.worker
  apache     2166  0.0  0.1 519808  5324 ?        Sl   00:05   0:00 /usr/sbin/httpd.worker
  把#再次加上之后再次ps aux
  root       2306  0.0  0.0 175340  3760 ?        Ss   00:07   0:00 /usr/sbin/httpd
  apache     2308  0.0  0.0 175340  2480 ?        S    00:07   0:00 /usr/sbin/httpd
  apache     2309  0.0  0.0 175340  2464 ?        S    00:07   0:00 /usr/sbin/httpd
  apache     2310  0.0  0.0 175340  2464 ?        S    00:07   0:00 /usr/sbin/httpd
  apache     2311  0.0  0.0 175340  2464 ?        S    00:07   0:00 /usr/sbin/httpd


运维网声明 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-636068-1-1.html 上篇帖子: Apache Beam官方文档 下篇帖子: 非手工编译apache中awstats日志分析管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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