# Apache配置
1、设置静态文件过期时间为1天
<ifmodule mod_expires.c>
ExpiresActive on
ExpiresBytype text/css "access plus 1 days"
ExpiresByType text/javascript "access plus 1 days"
ExpiresByType application/x-javascript "access plus 1 days"
ExpiresByType image/* "access plus 1 days"
</ifmodule>
2、开启gzip压缩
<ifmodule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
#SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase
#SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary
</ifmodule>
3、配置/upload附件目录
#不代理upload路径
ProxyPass /upload !
4、访问附件目录/upload,不要提示403禁止,提示404不存在,防止泄露站点结构。
#访问/upload路径不提示403禁止错误,提示404不存在。
RedirectMatch 404 ^/upload/$
5、禁用TRACE方法
修改httpd.conf文件,添加如下代码,重启。
TraceEnable off
6、设置首页重定向
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^/$ /sso/ [R=permanent,L]
7、设置proxy超时时间
Timeout 600
ProxyTimeout 600
Apache项目配置
程序目录:/usr/local/apache2
配置
主配置文件:/usr/local/apache2/conf/httpd.conf
虚拟主机配置:/usr/local/apache2/conf/vhost
一个项目一个域名一个配置。
增加域名
脚本:/root/vhost.sh
[email protected]:~# /root/vhost.sh
Please input domain:
(Default domain: www.qq.com):
运行脚本,输入需要添加的域名例如www.qq.com,结束后会在/usr/local/apache2/conf/vhost生成www.qq.com.conf配置文件。配合tomcat修改以下两段的IP和端口。
ProxyPass / ajp://192.167.162.100:8009/
ProxyPassReverse / ajp://l92.167.162.100:8009/
新增域名添加解析后网址类似如http://www.qq.com:120/。网站目录是/home/wwwroot/www.qq.com,日志是/var/log/apache2/www.qq.com-access_log。
重启apache2
/etc/init.d/apache2 restart
Apache服务器方法DoS
Apache服务器对拒绝服务攻击的防范主要通过软件Apache DoS Evasive Maneuvers Module来实现。
使用Linux命令防范Dos攻击
netstat -na |grep - "服务器IP地址:80" |awk '{print $6}' | sort | uniq -c | sort -n
这个命令会自动统计TCP连接的各个状态的数量,如果syn_recv很高的话,就不能排除有基于TCP协议的拒绝服务攻击的可能。于是需要打开tcp_syncookies.
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
如果没有/proc/sys/net/ipv4/tcp_syncookies,说明内核不支持syncookies,需要重新编译内核,同时降低SYN重试次数
echo "1" > /proc/sys/net/ipv4/tcp_syn_syncookies
echo "1" > /proc/sys/net/ipv4/tcp_synack_syncookies
同时加大syn_backlog,以保证用户的访问:
echo "2048" > /proc/sys/net/ipv4/tcp_max_syn_syncookies
利用LDAP对Apache进行认证
建立测试网页
#mkdir /var/www/html/ldap
#echo "LDAP Auth Test Page" > /var/www/html/ldap.html
安装mod_authz_ldap模块
要让Apache服务器可以存取LDAP服务器上的资料,必须利用mod_authz_ldap模块作为Apache和LDAP服务器之间认证的接口,所以必须mod_authz_ldap模块。
#rpm -ivh mod_authz_ldap*.rpm
修改/etc/httpd/conf.d/auth_mysql.conf
若之前曾安装mod_auth_mysql认证模块,则必须将mod_auth_mysql模块功能关闭
#LoadModule mysql_auth_module modules/mod_auth_mysql.so
修改/etc/httpd/conf.d/authz_ldap.conf
