Apache Application

apache常見應用如下

…………………………………………………………………………
…………………………………………………………………………

webablizer 分析軟體
http://www.mrunix.net/webalizer/
webalizer的指令
 -C filepath //filepath是webalizer.conf的絕對路徑位置,依webalizer.conf建立報表並存到OutputDir指定的目錄下(需為空目錄)
 -Q //將webalizer.conf內,把LogFile指定的紀錄檔製成報表存到OutputDir指定的目錄下,依cron預設每天執行一次

…………………………………………………………………………
…………………………………………………………………………

管理apache認證帳號和密碼檔

htpasswd:簡單的使用者帳號與密碼純文字檔
1,使用htpasswd指令建密碼檔
htpasswd -c keyfile user1 //建立keyfile密碼檔(名稱任意),並將user1加入
ps:htpasswd [-cmsd] file user
 -c keyfile:建立keyfile密碼檔,第一次產生帳號都要先建立
 keyfile user:將user帳號加入keyfile密碼檔內
 -m keyfile user:同上,但用md5加密,(-s為用sha,-d用crypt)
2,設定httpd.conf
在欲進行認證的< tag>< /tag >至少放置以下參數,ex:,< Directory “/var/www/html”>< /Directory >
 AuthName “自由輸入”
 AuthType Basic
 AuthUserFile htpasswd建立的密碼檔絕對路徑
 require user user1 user2… //可登入的帳戶

dbmmange:以dbm資料檔儲存帳號密碼
 若超過百人建議使用

htdigest:以md5對密碼進行加密
1,需用htdigest指令建立密碼檔,用法如下
 htdigest [-c] file realm user
  -c file realm user:建立新的密碼檔並將使用者加入
 ps:若設realm表在AuthName的值也是realm
2,在欲進行認證的< tag>至少放置以下參數
 AuthName realm
 AuthType Digest
 AuthDigestFile htdigest建立的密碼檔絕對路徑
 require user user1 user2…

…………………………………………………………………………
…………………………………………………………………………

虛擬主機
需要設定的有4個:
//第一個
NameVirtualHost *:80 //規定本機任何介面的port 80所指定的虛擬主機

//< Directory “/var/www/html”> //網頁伺服器的根目錄設定
//* //這段在httpd.conf裡面就有了,所以只要在幫此目錄多做第二個的設定即可
//第二個,老實說還不知道為什麼連網頁伺服器的根目錄也要設定
< VirtualHost *:80>
 ServerName web.com.tw
 DocumentRoot /var/www/html
< /VirtualHost>

//第三個,這邊開始是不同的虛擬主機的目錄設定
< Directory “/var/www/user1”> //user1的虛擬主機實體存放資料目錄
 Options FollowSymLinks
 AllowOverride None
 Order allow,deny
 Allow from all
< /Directory >
< VirtualHost *:80>
 ServerName user1.web.com.tw //打這個網址即可連到該user1的虛擬主機下
 DocumentRoot /var/www/user1 //user1的虛擬主機實體存放資料目錄
 CustomLog /var/log/httpd/user1_access_log combined //不同的主頁可以指定不同的登錄檔資訊
< /VirtualHost>


//第四個
確認輸入的網址可以被轉換成ip,也就是dns要做確認,否則會無法看到

ps:
虛擬主機另外一種設定方法
假設port 80已經在使用,想新增另一個port 8000對應到另一個目錄/var/www/web8000
可以如下設定,之後輸入ip:8000則可看到/var/www/web8000內容
Listen 8000
< Directory “/var/www/web8000”>
 Options FollowSymLinks
 AllowOverride None
  Order allow,deny
 Allow from all
< /Directory >
< VirtualHost *:8000>
 ServerName web8000.web.com.tw
 DocumentRoot /var/www/web8000
< /VirtualHost>

…………………………………………………………………………
…………………………………………………………………………

ssl支援
安裝時預設不啟動 mod_ssl,所以要在./configure時多加 –enable-ssl
可看modules/是否有 mod_ssl.so或執行httpd -l看是否有mod_ssl.c

設定部份
1製作public key
openssl genrsa -out server.key 1024 //建立1024bit的public key並命名為server.key
2製作憑証檔
openssl req -new -x509 -key server.key -out server.crt //用server.key建立出server.crt憑証檔
3在httpd.conf裡加入
LoadModule ssl_module modules/mod_ssl.so //source of mod_ssl.so
Listen 443
< VirtualHost _default_:443>
 SSLEngine on
 SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW //允許 client 端的連線要求機制
 SSLCertificateFile /usr/local/devtest3/server.crt //憑証檔的絕對位置
  SSLCertificateKeyFile /usr/local/devtest3/server.key //public key的絕對位置
< /VirtualHost>
ps:防火牆記得打開port 443
ps:更多參數可看http://httpd.apache.org/docs/2.0/mod/mod_ssl.html

…………………………………………………………………………
…………………………………………………………………………

參考來源
鳥哥的私房菜
apache2.0深入研究
linux伺服器建置與管理