# 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
