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

[经验分享] httpd的简单配置(转)

[复制链接]

尚未签到

发表于 2017-3-2 10:39:26 | 显示全部楼层 |阅读模式
  一般网站都采用httpd作web服务器提供web页面,本文主要介绍下几个httpd中常用的配置属性和配置方式,当然具体应用更具具体需求来定。
  代理模块配置:
  由于网页动态化,网页的生成基本代理到后端服务器,典型的比如:jetty、tomcat(jservlet系列),iis等。而web服务器需要和这些打交道。
  比较常用的几个模块:
  mod_jk mod_proxy*
  这里介绍下mod_proxy配置实例:



[plain] view plain copy

  • <IfModule mod_proxy.c>
  •     ProxyRequests Off
  •     ProxyPreserveHost On
  •     <Directory proxy:*>
  •         Order deny,allow
  •         Allow from all
  •     </Directory>
  •     ProxyPassMatch ^/(user)/(.*)$  http://localhost:${wmmad_appserver_port} min=5 smax=16 ttl=600 timeout=100
  •     ProxyPass /monitor/status      http://localhost:${wmmad_appserver_port}/monitor/status.do
  •     ProxyPass /monitor/default     http://localhost:${wmmad_appserver_port}/monitor/default.do
  • </IfModule>
  说明:
  1. 开启代理
  2.配置访问权限
  3.过滤代理配置,注意尽量不要把说有的资源请求代理到后端服务器,因为像jetty这些在处理静态资源的能力比httpd弱很多,只有需要动态访问的模块才配置在后端
  请求头配置:
  一般请求头不太配置,不过向最近的apche 0day攻击,能导致服务挂掉的就可能需要用,举例:



[plain] view plain copy

  • <IfModule mod_headers.c>
  •         Header set X-Content-Type-Options "nosniff"
  •         Header set X-XSS-protection "1;mode=block"
  • </IfModule>
  虚拟主机配置:
  有时候我们要配置多个虚拟主机,比如同时提供http和https,这时候就需要配置多个虚拟主机,举例:



[plain] view plain copy

  • NameVirtualHost *:80
  • <VirtualHost *:80>
  •     ServerName www.lpnote.net
  •     DocumentRoot "/home/madding/deploy/htdocs"
  •     ServerRoot "/home/madding/output"
  • </VirtualHost>

  • NameVirtualHost *:443
  • <VirtualHost *:443>
  •     Include /home/madding/deploy/conf/httpd/mod_ssl.conf
  •     ServerName www.lpnote.net
  •     DocumentRoot "/home/madding/deploy/htdocs"
  •     ServerRoot "/home/madding/output"
  • </VirtualHost>
  开启http和https两个虚拟主机

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



[plain] view plain copy

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

  • </IfModule>
  访问主页时跳转到一个指定页面
注意区分一下rewrite和proxy两个概念。
  过期头配置:
  过期头主要作服务器端缓存用,比如图片,样式,脚本等不太变化的内容,减少客户端请求,举例:



[plain] view plain copy

  • <IfModule mod_expires.c>
  •     ExpiresActive on
  •     ExpiresDefault A0
  •     ExpiresByType image/gif A31536000
  •     ExpiresByType image/jpeg A31536000
  •     ExpiresByType image/png A31536000
  •     ExpiresByType text/css A2592000
  •     ExpiresByType text/js A2592000
  •     ExpiresByType text/javascript A2592000
  •     ExpiresByType application/javascript A2592000
  •     ExpiresByType application/x-javascript A2592000
  •     ExpiresByType application/x-shockwave-flash A31536000
  • </IfModule>
  A代表基于创建的过期时间,类型为apache mime中定义的类型。
  日志配置:
  日志主要包括apache 错误日志和访问日志:
  错误日志,日志级别和日志输出位置,举例如下:



[plain] view plain copy

  • LogLevel error

  • ErrorLog  "|/sbin/cronolog  /home/madding/output/logs/apache/apache_error.log.%w"
  本实例主要定义日志采用cronlog重定下到外部目录输出,按天区分。
  该日志主要用来排查一些错误信息,一般比较少用。
  访问日志,访问日志主要包括日志格式和日志输出,举例如如下:



[plain] view plain copy

  • 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
  • CustomLog "|/sbin/cronolog /home/madding/output/logs/cookie_logs/%w/cookie_log" cookie_log env=!XXXLOG
  第一行定义一个错误日志格式,主要包含客户端地址,时间,访问引用等信息。具体可以参考apache文档。
  第二行定义日志输出格式,按天区分,并且日志如果是XXXLOG定义的信息就不记录访问,一般用在信息过滤上。
  该日志是比较重要的日志,记录所有的访问信息,并在排查安全问题、用户行为分析上非常有用。
  本文介绍一些线上部署应用可能用到的配置,当然不同作用的web服务器配置是不同的,
  全作参考

运维网声明 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-349196-1-1.html 上篇帖子: gradle多模块开发(转) 下篇帖子: Spring Boot 入门概念介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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