Category Archives: Apache

[Apache]mod_proxy

Apache中有一個mod_proxy模組,開啟後就可以讓Apache有proxy的功能(很吃記憶體)

最常用到的就是用在網頁上

Enable 如果在Ubuntu中可以透過以下指令開啟

在FreeBSD中必須手動開啟以下兩個Module

Forward Proxy Forward Proxy是一般proxy的代理功能

Reverse Proxy Reverse Proxy跟Forward Proxy正好相反,可以應用在導向內部實際服務的伺服器

Continue Reading

[Apache]mod_deflate(gzip)

在Apache中,可以啟用mod_deflate來壓縮網頁,傳送給client後再由client端解壓縮,可以大大節省頻寬的使用

開啟方法:

接著可以在Apache設定檔(httpd.conf)中自訂一些設定

其他更細部的操作,例如BrowserMatch等等,可以直接參考Apache mod_deflate的說明

設定完成後重新啟動Apache即可,可以透過這個網站測試

Continue Reading

[Ubuntu]Apache 安裝 SSL

建立憑證檔案

啟動 Apache 的 ssl 模組

加入監聽port

完整設定檔(補齊Listen 443和NameVirtualHost)

修改Apache設定檔

這裡產生的憑證檔案大多是自己用,如果要公機關認可的憑證,必須再參考其他憑證網站

Continue Reading

[Apache]VirtualHost 設定

通常在一台Web Server上,會有數個不一樣的網站要執行,這時候各個網站的domain name就必須靠VirtualHost設定

VirtualHost基本設定

Alias也可以透過正規表示法設定成pattern,可以參考mod_alias Directory設定可以參考Directory Directive Allow和Deny的部份可以參考mod_access_compat 另外也可以把VirtualHost設定成動態的pattern (需要開啟mod_vhost_alias module)

這樣一來,假設我有一個/home/johnsonlu/public_html/www/api/test.api.johnsonlu.org/public的路徑,就可以對應到test.api.johnsonlu.org

VirtualDocumentRoot的字串pattern可以參考 mod_vhost_alias

Continue Reading

[Apache]htaccess tricks

常常在其他網站看到一些沒有副檔名的網址,

其實這是可以用RewriteEngine做到的,

只要在網站根目錄新增一個.htaccess檔案

當每次使用者連進該網站時,都會根據.htaccess裡的RewriteRule(重寫規則)和RewriteCond(重寫條件)的組合來完成許多效果, 在.htaccess執行時會先判斷是否符合RewriteCond條件,若是符合就執行RewriteRule

另外有些條件模式可以配合使用 RewriteCond: -d:判斷CondPattern是否為一個存在的目錄 -f:判斷CondPattern是否為檔案 -s:判斷CondPattern是否為檔案,且檔案大小大於0 -F:判斷CondPattern是否為檔案,且確認該檔案有存取權限 -U:判斷CondPattern是否為檔案,且確認該路徑有存取權限 [NC]代表不區分大小寫 [OR]邏輯判斷的OR

RewriteRule: [R]重新轉向,預設會回傳Http response 302,也可以[R=301]調整成301 [F]禁止該URL,並回傳Http response 403 [G]該URL已永久無法使用,並回傳Http response 410 [L]該次RewriteRule到此結束,後續的RewriteRule就不受先前的RewriteCond影響

當然也有些常數可以使用,使用方法是%{NAME_OF_VARIABLE} NAME_OF_VARIABLE可以是下列以下字串之一: HTTP標頭 HTTP_USER_AGENT HTTP_REFERER HTTP_COOKIE HTTP_FORWARDED HTTP_HOST HTTP_PROXY_CONNECTION HTTP_ACCEPT 連接與請求 REMOTE_ADDR REMOTE_HOST REMOTE_PORT REMOTE_USER REMOTE_IDENT REQUEST_METHOD SCRIPT_FILENAME PATH_INFO QUERY_STRING AUTH_TYPE Server DOCUMENT_ROOT SERVER_ADMIN SERVER_NAME SERVER_ADDR SERVER_PORT SERVER_PROTOCOL SERVER_SOFTWARE 日期和時間

Continue Reading

[Ubuntu]開啟apache userdir

開啟userdir,並重啟apache

note:Ubuntu 10.04的apache userdir 的部份新版更新之後是關起來的,所以需要自行打開

把以下註解拿掉再重啟apache即可

Continue Reading