httpd配置-创新互联

CentOS 6:httpd-2.2
         程序环境:
            配置文件:
               /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
            日志文件:
               /var/log/httpd:
                  access_log:访问日志
                  error_log:错误日志
            站点文档:
               /var/www/html(页面文件)
            模块文件路径:
               /usr/lib64/httpd/modules

            服务控制和启动:
               chkconfig httpd on|off
               service {start|stop|restart|status|configtest|reload} httpd

成都创新互联主要从事成都网站设计、成都网站制作、外贸网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务岚山,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

常用配置:
         1、修改监听的IP和PORT

       # vim /etc/httpd/conf/httpd.conf

httpd 配置                        (1) 省略IP表示为0.0.0.0;
               (2) Listen指令可重复出现多次;
                  Listen 80
                  Listen 8080
               (3) 修改监听socket,重启服务进程方可生效;
        注意:改配置文件需要重启服务 service httpd restart

        netstat -tnlp(查看当前启动的服务所用的端口)

        2、持久连续
     tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行;
   副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常 响应;
   折衷:使用较短的持久连接时长,以及较少的请求数量;
               KeepAlive On|Off(是否开启持久连续)
               KeepAliveTimeout 15(时间限制)
               MaxKeepAliveRequests 100(数量限制

  # vim /etc/httpd/conf/httpd.conf

httpd 配置

     重启服务 service httpd restart

   3、MPM
            httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;

               CentOS 6的rpm包为此专门提供了三个应用程序文件:

               httpd(prefork),    httpd.worker,     httpd.event

            查看现在使用的是哪个程序文件的方法启动了多少进程:
             #   ps aux | grep httpd

               第一行为主控进程(管理进程的创建和销毁)

            默认使用的为/usr/sbin/httpd,其为prefork的MPM模块 ;
               查看httpd程序的模块列表:
                  查看静态编译的模块:
                     # httpd -l
                  查看静态编译及动态编译的模块:
                     # httpd -M

             更换使用httpd程序,以支持其它MPM机制;
             #  vim /etc/sysconfig/httpd
                  HTTPD=/usr/sbin/httpd.{worker,event}

            注意:重启服务进程方可生效

                        # service httpd restart

MPM配置:
            # vim /etc/httpd/conf/httpd.conf
               prefork的配置
                  <IfModule prefork.c>(如果prefork存在)
                  StartServers      8(启动多少空闲进程)
                  MinSpareServers   5(最少空闲进程数)
                  MaxSpareServers  20(大空闲进程)
                  ServerLimit     256(允许MaxClients大启动的进程数量)
                  MaxClients      256(大允许启动的进程数量)
                  MaxRequestsPerChild 4000(每个进程最多可处理多少请求,处理了4000个就要销毁此进程)
                  </IfModule>

               worker的配置:
                  <IfModule worker.c>
                  StartServers        4(启动多少空闲进程)
                  MaxClients        300(大允许启动的进程数量)
                  MinSpareThreads    25(最少空闲进程数)
                  MaxSpareThreads    75(最多空闲进程数)
                  ThreadsPerChild    25(每个主进程大可生成多少线程)
                  MaxRequestsPerChild 0(每个进程可处理无上限的请求)
                  </IfModule>

            PV,UV
               PV:Page View(页面浏览量)
               UV: User View(用户浏览量)

4、DSO(动态共享模块)
            配置指定实现模块加载
               LoadModule <mod_name> <mod_path>(模块文件路径)

               模块文件路径可使用相对路径:
                  相对于ServerRoot(默认/etc/httpd)

5、 定义访问主文档页面路径

   # vim /etc/httpd/conf/httpd.conf

      DocumentRoot " "

文档路径映射:
               DoucmentRoot指向的路径为URL路径的起始位置
                  其相当于站点URL的根路径;

注意:重启服务进程方可生效

                        # service httpd restart

6、站点访问控制常见机制

              # vim /etc/httpd/conf/httpd.conf
            可基于两种机制指明对哪些资源进行何种访问控制

               文件系统路径:
                  <Directory "">
                  ...
                  </Directory>

                  <File "">
                  ...
                  </File>

                  <FileMatch "PATTERN">
                  ...
                  </FileMatch>
               URL路径:
                  <Location "">
                  ...
                  </Location>

                  <LocationMatch "">
                  ...
                  </LocationMatch>

            <Directory>中“基于源地址”实现访问控制:
               (1) Options
                  后跟1个或多个以空白字符分隔的“选项”列表;
                     Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户;(建议关掉)
                     FollowSymLinks:允许跟踪符号链接文件所指向的源文件(建议关掉);
                     None:一个也没有
                     All:全部
                  建议改为:Options None

                   (2) AllowOverride(允许覆盖)
                  与访问控制相关的哪些指令可以放在.htaccess文件(每个目录下都可以有一个)中;
                     All: 全部
                     None:一个也没有
                  建议改为:AllowOverride None
               (3) order和allow、deny拒绝
                  order:定义生效次序;写在后面的表示默认法则;

                  Allow from来源地址, Deny from来源地址
                     来源地址:
                        IP
                        NetAddr:(网络地址)
                           172.16
                           172.16.0.0
                           172.16.0.0/16
                           172.16.0.0/255.255.0.0
                  1、e.g.设置为仅允许172.16网段的主机访问:Allow from 172.16
                  2、e.g.Deny from 172.16.100.88
                     Allow from 172.16

           (仅允许172.16网段的主机访问,但 172.16.100.88这台不能访问)

7、定义站点主页面:

        # vim /etc/httpd/conf/httpd.conf

            DirectoryIndex index.html index.html.var(先找index.html没有找到,就找index.html.var)

8、定义路径别名

 # vim /etc/httpd/conf/httpd.conf

           格式:
               Alias /URL/ "/PATH/TO/SOMEDIR/"

            DocumentRoot "/www/htdocs"
               http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
                  /www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm

            Alias /download/ "/rpms/pub/"
               http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm

                  /rpms/pub/bash-4.4.2-3.el6.x86_64.rpm

               http://www.magedu.com/p_w_picpaths/logo.png
                  /www/htdocs/p_w_picpaths/logo.png

         9、设定默认字符集(为防止“语言”不通,响应的页面看不懂。)
            AddDefaultCharset UTF-8

            中文字符集:GBK, GB2312, GB18030

          10、日志设定
            日志类型:访问日志 和 错误日志

            错误日志

               ErrorLog logs/error_log

               LogLevel warn(警告)
               错误级别: debug(所有错误的都记录下来), info(比debug更高级), notice(引起关注), warn(警告), error(发生错误), crit(级别很严重), alert(红色警戒), emerg(紧急事务).

            访问日志:查看访问日志:#tail /var/log/httpd/access_log
               LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
               CustomLog logs/access_log combined

               LogFormat format strings:(LogFormat格式符意思)
                  http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

                  %h:客户端IP地址;
                  %l:客户端用户名, 通常为一个减号(“-”);
                  %u:客户端用户 (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号;
                  %t:服务器收到请求时的时间;
                  %r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”、“URL”以及协议版本;
                  %>s:响应状态码;
                  %b:响应报文的大小,单位是字节;不包括响应报文的http首部;
                  %{Referer}i:请求报文中首部“referer”的值;referer即从哪个页面中的超链接跳转至当前页面的;
                  %{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用程序;

          11、基于用户的访问控制

           认证方式有两种:
                  basic:明文
                  digest:消息摘要认证

     此处使用 basic认证。

 # vim /etc/httpd/conf/httpd.conf

httpd 配置

basic认证配置示例:
                 定义安全域
                  <Directory "">(定义哪个页面资源访问时需要认证)
                     Options None
                     AllowOverride None
                     AuthType Basic(认证类型)
                     AuthName "String“(认证提示符)
                     AuthUserFile "/PATH/TO/HTTPD_USER_PASSWD_FILE"(认证时的账号密码所在的路径)
                     Require user username1 username2 ...(指明可登陆的用户;允许账号文件中的所有用户登录访问:Require  valid-user)
                  </Directory>

      创建账号密码文件AuthUserFile :

                   htpasswd [options]  /PATH/TO/HTTPD_PASSWD_FILE username
                        -c:自动创建此处指定的文件,因此,仅应该在此文件不存在时使用;
                        -m:md5格式加密
                        -s: sha格式加密
                        -D:删除指定用户
                  e.g. htpasswd -c -m /etc/httpd/conf/.htpasswd tianxudong
                   注意:首次添加用户时使用-c,之后都不能使用,否则会覆盖里面原有的用户信息。

基于组账号进行认证;

# vim /etc/httpd/conf/httpd.conf

httpd 配置

            相比定义用户访问控制,多加一个组认证的文件。
                        AuthGroupFile "/PATH/TO/HTTPD_GROUP_FILE"
                        Require group grpname1 grpname2 ..


   创建用户账号和组账号文件;
       #vim /etc/httpd/conf/.htgroup

           mygrp: tianxidong


      组文件:每一行定义一个组
                        GRP_NAME: username1 username2 ...

    12、虚拟主机
            有三种实现方案:
               基于ip:
                  为每个虚拟主机准备至少一个ip地址;
               基于port:
                  为每个虚拟主机使用至少一个独立的port;
               基于FQDN:
                  为每个虚拟主机使用至少一个FQDN;

          注意:一般虚拟机不要与中心主机混用;因此,要使用虚拟主机,得先禁用'main'主机;
     禁用方法:注释中心主机的DocumentRoot指令即可;

         虚拟主机的配置方法:
               <VirtualHost IP:PORT>(虚拟主机所监听的端口地址)
                  ServerName FQDN(若没有用name标示,则无需写FQDN)
                  DocumentRoot ""(虚拟主机的站点文件路径)
               </VirtualHost>

               其它可用指令:
                  ServerAlias:虚拟主机的别名;可多次使用;
                  ErrorLog:(此虚拟主机专用的错误日志)
                  CustomLog:(此虚拟主机专用的访问日志)
                  <Directory "">(基于路径对资源做访问控制)
                  ...
                  </Directory>
                  Alias(路径别名)
                  ...

   e.g. 不同IP访问不同站点:

                  注释掉主配置文件的DocumentRoot

                     编译一个文件:
                    # vim /etc/httpd/conf.d/vhosts.conf
                             <VirtualHost 172.168.110.6:80>
                                    ServiceName www.a.com
                                    DocumentRoot "/www/a.com/htdocs"
                             </VirtualHost>

                             <VirtualHost 172.168.110.7:80>
                                    ServiceName www.b.net
                                    DocumentRoot "/www/b.net/htdocs"
                             </VirtualHost>

                             <VirtualHost 172.168.110.8:80>
                                    ServiceName www.c.org
                                    DocumentRoot "/www/c.org/htdocs"
                             </VirtualHost>
                     语法检查:httpd -t
                     重启服务:service httpd reload

    e.g.  基于端口的虚拟主机:
               首先添加3个端口:可参考上面的常用配置 1 。
               语法检查:httpd -t

               编译一个文件:
                    # vim /etc/httpd/conf.d/vhosts.conf

               <VirtualHost 172.16.100.6:80>
                  ServerName www.a.com
                  DocumentRoot "/www/a.com/htdocs"
               </VirtualHost>

               <VirtualHost 172.16.100.6:808>
                  ServerName www.b.net
                  DocumentRoot "/www/b.net/htdocs"
               </VirtualHost>

               <VirtualHost 172.16.100.6:8080>
                  ServerName www.c.org
                  DocumentRoot "/www/c.org/htdocs"
               </VirtualHost>
               语法检查:httpd -t
                    重启服务:service httpd reload

       e.g.  基于FQDN的虚拟主机:(端口一样、地址一眼样)
               NameVirtualHost 172.16.100.6:80(基于FQDN的虚拟主机需要加一个专门的指令,Centos7不需要此指令)

               <VirtualHost 172.16.100.6:80>
                  ServerName www.a.com
                  DocumentRoot "/www/a.com/htdocs"
               </VirtualHost>

               <VirtualHost 172.16.100.6:80>
                  ServerName www.b.net
                  DocumentRoot "/www/b.net/htdocs"
               </VirtualHost>

               <VirtualHost 172.16.100.6:80>
                  ServerName www.c.org
                  DocumentRoot "/www/c.org/htdocs"
               </VirtualHost>
               语法检查:httpd -t
                    重启服务:service httpd reload

         13、status页面(查看运行中的进程详细情况,应加以访问认证)
            LoadModule status_module modules/mod_status.so
            编辑主配置文件,将以下几行启用。
            <Location /server-status>
               SetHandler server-status
               Order allow,deny
               Allow from 172.16(建议设置为只允许某台主机访问)
            </Location>

       14、使用mod_deflate模块压缩页面优化传输速度

         适用场景:
            (1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持;
            (2) 压缩适于压缩的资源,例如文件文件;

       # vim /etc/httpd/conf/httpd.conf

httpd 配置

                         语法检查:httpd -t
                         重启服务:service httpd reload

CentOS 6上编译安装httpd2.4版本:

        CentOS 6默认apr和 apr-util是1.39版的,而httpd2.4,需要 apr和 apr-util 是1.4版本以上的。

             可以去 apr.apache.org官网下载1.4版本的。

          开发环境包组:Development Tools, Server Platform Development
          开发程序包:pcre-devel

            先关掉httpd服务不要开机自动启动
            # service httpd stop
            # chkconfig httpd off

            编译安装步骤:
               (1) apr-1.4+
                  # ./configure --prefix=/usr/local/apr
                  # make && make install

               (2) apr-util-1.4+
                  # ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
                  # make && make install

               (3) httpd-2.4
                  # ./configure --prefix=/usr/local/apache24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
                  # make && make install

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

本文题目:httpd配置-创新互联
标题路径:https://www.cdcxhl.com/article48/codoep.html

成都网站建设公司_创新互联,为您提供用户体验网站设计公司品牌网站设计搜索引擎优化关键词优化企业建站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联