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

代理模块配置:

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

比较常用的几个模块:

mod_jk mod_proxy*

这里介绍下mod_proxy配置实例:

  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攻击,能导致服务挂掉的就可能需要用,举例:

  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,这时候就需要配置多个虚拟主机,举例:

  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. NameVirtualHost *:443
  8. <VirtualHost *:443>
  9. Include /home/madding/deploy/conf/httpd/mod_ssl.conf
  10. ServerName www.lpnote.net
  11. DocumentRoot "/home/madding/deploy/htdocs"
  12. ServerRoot "/home/madding/output"
  13. </VirtualHost>

开启http和https两个虚拟主机

rewrite模块配置:

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

  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\.0\s+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. </IfModule>

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

过期头配置:

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

  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 错误日志和访问日志:

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

  1. LogLevel error
  2. ErrorLog  "|/sbin/cronolog  /home/madding/output/logs/apache/apache_error.log.%w"

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

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

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

  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服务器配置是不同的,

全作参考

httpd的简单配置(转)的更多相关文章

  1. httpd.conf简单配置

    本文介绍apache中httpd.conf的配置.该配置也可解决打开php文件却变成下载的尴尬情况 1 修改网站根目录查找DocumentRoot有这么一行DocumentRoot "C:/ ...

  2. http2.4简单配置

    前言: 上一篇博文说到了http的发展以及http完整请求响应的工作流程. 一.开篇: 从最简单的静态服务器开始. 之前说过,http是应用层协议,必定会在用户空间体现出具体的应用程序.常见的http ...

  3. Apache 中httpd.conf文件配置详解(转载)

    httpd.conf文件配置详解   Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ...

  4. HAProxy安装及简单配置

    一.HAProxy简介 代理的作用:web缓存(加速).反向代理.内容路由(根据流量及内容类型等将请求转发至特定服务器).转码器(将后端服务器的内容压缩后传输给client端).缓存的作用:减少冗余内 ...

  5. 小丁带你走进git世界一-git简单配置

    小丁带你走进git世界一-git简单配置 1.github的简单配置 配置提交代码的信息,例如是谁提交的代码之类的. git config  –global user.name BattleHeaer ...

  6. 以实际的WebGIS例子探讨Nginx的简单配置

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 以实际项目中的一个例子来详细讲解Nginx中的一般配置,其中涉 ...

  7. centos7 apache httpd安装和配置django项目

    一.安装httpd服务 apache在centos7中是Apache HTTP server.如下对httpd的解释就是Apache HTTP Server.所以想安装apache其实是要安装http ...

  8. CentOS 7.0 使用 yum 安装 MariaDB 与 MariaDB 的简单配置

    1.安装MariaDB 安装命令 yum -y install mariadb mariadb-server 安装完成MariaDB,首先启动MariaDB,两条命令都可以 systemctl sta ...

  9. ssm简单配置

    MyBatis 是一个可以自定义SQL.存储过程和高级映射的持久层框架. MyBatis 摒除了大部分的JDBC代码.手工设置参数和结果集重获. MyBatis 只使用简单的XML 和注解来配置和映射 ...

随机推荐

  1. One simple health check for oracle with sql

    There are some sqls which is used for check the oracle database's health condition. ------numbers of ...

  2. 'datetime.datetime' has no attribute 'datetime'问题

    写python时,用到了日期计算.于是写了datetime.datetime(*d_startTime[0:6])这样的代码. 结果编译不通过,报 'datetime.datetime' has no ...

  3. 【UML九种图系列】之如何利用三层来绘制类图、时序图?

    UML并发视图:实体之间行为的交互,是动态.分为:时序图.协作图.状态图.活动图 一.时序图简述: 时序图(Sequence Diagram):描述对象之间的交互行为,按照时间顺序排列. 元素: 角色 ...

  4. 《学习opencv》笔记——矩阵和图像操作——cvSetIdentity,cvSolve,cvSplit,cvSub,cvSubS and cvSubRS

    矩阵和图像的操作 (1)cvSetIdentity函数 其结构 void cvSetIdentity(//将矩阵行与列相等的元素置为1.其余元素置为0 CvArr* arr//目标矩阵 ); 实例代码 ...

  5. 深入理解extern使用方法

    一. extern做变量声明 l  声明externkeyword的全局变量和函数可以使得它们可以跨文件被訪问. 我们一般把全部的全局变量和全局函数的实现都放在一个*.cpp文件中面,然后用一个同名的 ...

  6. 使用JDBC对数据库实现批处理操作

    本篇讲述如何使用JDBC对数据库实现批处理操作.很多时候单条SQL命令不能满足我们的需求,我们需要对数据库一次实现很多操作,需要发送一批SQL命令给数据库执行. 而JDBC也提供了相应的方法给我们实现 ...

  7. Problem J: Island Buses

    主要题意是:大海之间有岛,有的岛之间有桥,问你岛的个数,桥的个数,以及没有桥联通岛的个数,其中最后一次输入的没有回车,不注意的话最后一次会被吞,第二,桥的两端的标记是“X”(X也代表陆地),“X”的四 ...

  8. hadoop出现ava.lang.ClassNotFoundException: org.codehaus.jackson.map.JsonMappingException

    Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/jackson/map/JsonMa ...

  9. VC图形绘制双缓存的代码复用性讨论

    在前文中已经讨论了如何实现界面绘制双缓存的问题,前文网址如下: http://www.2cto.com/kf/201111/112429.html 双缓存的主要思路是:先把图形绘制到内存DC中,然后再 ...

  10. Windows XP 如何查看计算机开关机记录

    在Windows XP中,我们可以通过“事件查看器”的事件日志服务查看计算机的开.关机时间.因为事件日志服务会随计算机一起启动和关闭,并在事件日志中留下记录. 在这里有必要介绍两个ID号:6006和6 ...