Category: Apache / Nginx

Apache 預防 Slow HTTP DoS Attack

Slow HTTP DoS Attack 是一種針對 Web Server 的 DoS 攻擊手法, 而且對於使用 thread based 的伺服器 (Apache 預設是使用 thread) 尤其有效。做法是向 Web Server 發出連線請求, 但一直不回應 HTTP Header, 或者該回應的時間盡量拉長, 讓 Web Server 一直等待 HTTP …

CentOS 7 Apache (httpd) 重啟慢問題

在一台安裝了 Apache (httpd) 的 CentOS 主機上, 如果重新啟動 Apache 會很慢, 正常情況應該幾秒內便重啟完成.但啟動 Apache 便很快, 只是停止及重啟很慢。根據 Redhat Bugzilla 的內容, 在 systemd 的 httpd 服務, 將 KillMode 設定成 none 便可以, 以下是解決步驟:開啟 /usr/lib/systemd/system/httpd.service: /linux/ # …

RHEL / CentOS 7 開啟 UserDir 個人網頁模組

UserDir 模組可以讓伺服器的帳號, 擁有自己的網頁, 即在伺服器的主機名稱後面加上 “~username” 作為個人網頁。以下是在 RHEL 及 CentOS 開啟 UserDir 個人網頁模組, 以及設定 SELinux 的方法..在 CentOS 只要用 yum 安裝了 Apache (httpd), 預設已經安裝了 UserDir 模組, 只要在 httpd.conf 或 /etc/httpd/conf.d/ 下面建立設定檔便可以啟用。可以用以下指令確認是否有 UserDir …

F5 Networks 收購 Nginx

現在很多網站也是使用 Nginx 架設網站伺服器, 相比起 Apache 有更高效能及負載能力。最近資安廠商 F5 Networks 宣佈會收購 Nginx, Nginx 被收購後仍會維持開源, 原來的管理層也會留下來。不知 Nginx 往後會不會像 MySQL 一樣, Nginx 在新公司下繼續開發, 而創辦人之類的就另起爐灶, 建立可以跟 Nginx 兼容的替代 fork.

Nginx 開啟 gzip 壓縮設定

gzip 是一種壓縮工具, Web Server 透過 gzip 將數據壓縮, 再發送給使用者的瀏覽器解壓。這樣所需傳送的數據便會減少, 提昇網站的速度。以下是在 Nginx 開啟 gzip 壓縮的方法。在開啟 gzip 前, 可以先用 curl 檢視一下目前 Nginx 是否有開啟 gzip, 輸入以下指令: /linux/curl $ curl -H “Accept-Encoding: gzip” -I http://localhost/test.html …

Nginx 設定 WordPress 固定網址 Permalinks

WordPress 可以自行設定固定網址 (Permalinks) , 以可讀性較高的格式呈現, 如果沒有設定, 預設會使用類似 ?p=123 結尾的網址。一般上如果在 Apache 上安裝 WordPress, WordPress 內建的 .htaccess 會使用 mod_rewrite 自動進行對應。但 Nginx 並不支援 mod_rewrite, 需要編輯 Nginx 的設定檔。開啟網站的 Nginx 設定檔, 以下假設設定檔在 /etc/nginx/conf.d/opencli.com.conf: $ sudo …

隱藏 HTTP 檔頭內 Apache, Nginx, PHP 的版本

在預設的情況下, HTTP 的 Header 會包含了 Web Server 及 PHP 的版本, 基於安全理由, 可以用以下方法隱藏 Apache, Nginx 及 PHP 的版本資訊。Apache開啟 Apache 的 httpd.conf, CentOS 預設位置是 /etc/httpd/conf/httpd.conf: # vi /etc/httpd/conf/httpd.conf找到 “ServerTokens” 的一行, 如果沒有這一行便直接加入到最後面, 預設值是 …

Nginx 設定反向代理 Reverse Proxy

什麼是反向代理 Reverse Proxy?反向代理是在真實伺服器與客戶端間的代理伺服器, 當使用者透過客戶端 (瀏覽器) 訪問網站時, 反向代理伺服器會將請求轉送到背後的真實伺服器, 再將網站的結果傳送給客戶端。真實伺服器可能是本機的其他 Port, 也可能在內部網路, 或者在其他外部網路, 這樣使用者不會知道真實的伺服器在那裡, 可以隱藏真正伺服器的位置, 而且也可以實現 load balancing.安裝 Nginx 可以用 yum 或 apt-get 安裝: $ sudo yum install nginx或 $ sudo apt …

Nginx 設定目錄密碼保護

在 Apache 要設定密碼保護目錄, 可以用 .htaccess 及 .htpasswd 實現, 但在 Nginx 不支援 .htaccess..以下是 Nginx 設定密碼保護目錄的方法。1. 建立使用者名稱及密碼首先需要建立一個密碼檔, 裡面包含了使用者名稱, 以及加密了的密碼, 如果系統有安裝 Apache, 可以用以下語法建立密碼檔: # htpasswd -c /path/to/file/.htpasswd username然後跟著指示設定密碼即可。但如果沒有 htpasswd 指令可以使用, 那便要手動建立密碼檔, 但也是很簡單的。密碼檔的格式如下: username:encrypted-password:comment上面的 …