zoukankan      html  css  js  c++  java
  • httpd的简单配置(转)

    一般网站都采用httpd作web服务器提供web页面,本文主要介绍下几个httpd中常用的配置属性和配置方式,当然具体应用更具具体需求来定。

    代理模块配置:

      由于网页动态化,网页的生成基本代理到后端服务器,典型的比如:jetty、tomcat(jservlet系列),iis等。而web服务器需要和这些打交道。

    比较常用的几个模块:

      mod_jk mod_proxy*

     这里介绍下mod_proxy配置实例:

    [plain] view plain copy
     
    1. <IfModule mod_proxy.c>  
    2.     ProxyRequests Off  
    3.     ProxyPreserveHost On  
    4.     <Directory proxy:*>  
    5.         Order deny,allow  
    6.         Allow from all  
    7.     </Directory>  
    8.     ProxyPassMatch ^/(user)/(.*)$  http://localhost:${wmmad_appserver_port} min=5 smax=16 ttl=600 timeout=100  
    9.     ProxyPass /monitor/status      http://localhost:${wmmad_appserver_port}/monitor/status.do  
    10.     ProxyPass /monitor/default     http://localhost:${wmmad_appserver_port}/monitor/default.do  
    11. </IfModule>  

     说明:

    1. 开启代理

    2.配置访问权限

    3.过滤代理配置,注意尽量不要把说有的资源请求代理到后端服务器,因为像jetty这些在处理静态资源的能力比httpd弱很多,只有需要动态访问的模块才配置在后端

    请求头配置:

    一般请求头不太配置,不过向最近的apche 0day攻击,能导致服务挂掉的就可能需要用,举例:

    [plain] view plain copy
     
    1. <IfModule mod_headers.c>  
    2.         Header set X-Content-Type-Options "nosniff"  
    3.         Header set X-XSS-protection "1;mode=block"  
    4. </IfModule>  

    虚拟主机配置:

    有时候我们要配置多个虚拟主机,比如同时提供http和https,这时候就需要配置多个虚拟主机,举例:

    [plain] view plain copy
     
    1. NameVirtualHost *:80  
    2. <VirtualHost *:80>  
    3.     ServerName www.lpnote.net  
    4.     DocumentRoot "/home/madding/deploy/htdocs"  
    5.     ServerRoot "/home/madding/output"  
    6. </VirtualHost>  
    7.   
    8. NameVirtualHost *:443  
    9. <VirtualHost *:443>  
    10.     Include /home/madding/deploy/conf/httpd/mod_ssl.conf  
    11.     ServerName www.lpnote.net  
    12.     DocumentRoot "/home/madding/deploy/htdocs"  
    13.     ServerRoot "/home/madding/output"  
    14. </VirtualHost>  

     开启http和https两个虚拟主机

    rewrite模块配置:

     rewrite模块主要是针对apache自身访问的一些跳转配置,常见的比如首页跳转配置,以及代理服务器外跳,举例:

    [plain] view plain copy
     
    1. <IfModule mod_rewrite.c>  
    2.         RewriteEngine on  
    3.         RewriteRule ^/(index.html?)?$   http://xxx/index.htm [L,R=301,QSA]  
    4.         RewriteRule ^/images/(.*) http://xxx/images/$1 [L,R=301,QSA]  
    5.         RewriteRule ^/(offer|member|company)/(.*)  http://xxxx/$1/$2 [L,R=301,QSA]  
    6.         RewriteCond %{HTTP_USER_AGENT} ^$|^DSB.*$|^Spider.NET$|^AdsBlocker.*$|^REAL.*$|^Mozilla/5.0s+SF.*$  
    7.         RewriteRule ^/.* http://127.0.0.1/ [L,E=nolog:1]  
    8.         RewriteRule ^/member/([a-zA-Z0-9_-]+).html$  http://xxxx/memberId-$1.html [R=301,L,NC]  
    9.   
    10.  </IfModule>  

    访问主页时跳转到一个指定页面
     注意区分一下rewrite和proxy两个概念。

    过期头配置:

     过期头主要作服务器端缓存用,比如图片,样式,脚本等不太变化的内容,减少客户端请求,举例:

    [plain] view plain copy
     
    1. <IfModule mod_expires.c>  
    2.     ExpiresActive on  
    3.     ExpiresDefault A0  
    4.     ExpiresByType image/gif A31536000  
    5.     ExpiresByType image/jpeg A31536000  
    6.     ExpiresByType image/png A31536000  
    7.     ExpiresByType text/css A2592000  
    8.     ExpiresByType text/js A2592000  
    9.     ExpiresByType text/javascript A2592000  
    10.     ExpiresByType application/javascript A2592000  
    11.     ExpiresByType application/x-javascript A2592000  
    12.     ExpiresByType application/x-shockwave-flash A31536000  
    13. </IfModule>  

     A代表基于创建的过期时间,类型为apache mime中定义的类型。

    日志配置:

     日志主要包括apache 错误日志和访问日志:

      错误日志,日志级别和日志输出位置,举例如下: 

    [plain] view plain copy
     
    1. LogLevel error  
    2.   
    3. ErrorLog  "|/sbin/cronolog  /home/madding/output/logs/apache/apache_error.log.%w"  

      本实例主要定义日志采用cronlog重定下到外部目录输出,按天区分。

      该日志主要用来排查一些错误信息,一般比较少用。

    访问日志,访问日志主要包括日志格式和日志输出,举例如如下:

    [plain] view plain copy
     
    1. LogFormat "%h %{ORIG_CLIENT_IP}i %l %u %t "%m /%{HOST}i%U%q %H" %>s %b %D "%{Referer}i" "%{User-Agent}i"   cookie_log  
    2. CustomLog "|/sbin/cronolog /home/madding/output/logs/cookie_logs/%w/cookie_log" cookie_log env=!XXXLOG  

      第一行定义一个错误日志格式,主要包含客户端地址,时间,访问引用等信息。具体可以参考apache文档。

      第二行定义日志输出格式,按天区分,并且日志如果是XXXLOG定义的信息就不记录访问,一般用在信息过滤上。

      该日志是比较重要的日志,记录所有的访问信息,并在排查安全问题、用户行为分析上非常有用。

    本文介绍一些线上部署应用可能用到的配置,当然不同作用的web服务器配置是不同的,

    全作参考

  • 相关阅读:
    LeetCode对撞指针汇总
    167. Two Sum II
    215. Kth Largest Element in an Array
    2018Action Recognition from Skeleton Data via Analogical Generalization over Qualitative Representations
    题解 Educational Codeforces Round 84 (Rated for Div. 2) (CF1327)
    题解 JZPKIL
    题解 八省联考2018 / 九省联考2018
    题解 六省联考2017
    题解 Codeforces Round #621 (Div. 1 + Div. 2) (CF1307)
    题解Codeforces Round #620 (Div. 2)
  • 原文地址:https://www.cnblogs.com/softidea/p/5435466.html
Copyright © 2011-2022 走看看