Category: Apache / Nginx

CentOS 7 Apache (httpd) 重啟慢問題

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

Nginx 錯誤: client intended to send too large body

有一台原本使用 Apache 的 Web Server 換成 Nginx 後, 其中一個 PHP 的上傳檔案程式遇到錯誤, 原本以為是 PHP 的 max_execution_time 或 max_upload_filesize 設定太小出問題。後來在 Nginx 的 Log 找到以下錯誤:client intended to send too large body: xxxxxxx bytes出現這個錯誤是因為 …

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上面的 …

Apache 限制上載容量大小

想要透過 Apache 實現上載限制, 可以通過限制 HTTP 請求的大小來實現, 並根據需要對個別目錄、檔案或位置進行限制。例如要設定 /var/www/html/uploads 目錄的上載限制為 5MB, 可以在 httpd.conf 或 .htaccess 加入以下設定, 以下是 httpd.conf 的預設位置:RHEL / CentOS: # vi /etc/httpd/conf/httpd.conf Debian / Ubuntu: # vi /etc/apache2/apache2.conf 在檔案最後加入以下內容:如果是編輯 …