首頁  >  文章  >  運維  >  Nginx安全部署:從伺服器設定開始

Nginx安全部署:從伺服器設定開始

WBOY
WBOY原創
2023-06-10 08:24:141118瀏覽

Nginx是一款優秀的HTTP和反向代理伺服器,可提供高效能、穩定性和擴充性。為確保Nginx伺服器的安全性和穩定性,需要進行安全部署。本文將從伺服器設定開始,詳細介紹Nginx的安裝、設定、最佳化和安全部署。

  1. 伺服器設定

在安裝Nginx之前,需要進行伺服器的基礎設定。建議使用Linux作業系統,並安裝最新的系統更新和安全性修補程式。此外,伺服器應該具備足夠的記憶體和處理器能力,以確保Nginx伺服器的高效能。

  1. 安裝Nginx

Nginx可以從官網 https://nginx.org/en/download.html 下載最新的穩定版本。下載完成後,使用下列命令進行安裝:

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
sudo make install
  1. 設定Nginx

#Nginx的主要設定檔位於/etc/nginx/nginx.conf。在進行更改時,請確保備份原始檔案。以下是一個預設的Nginx設定檔的範例:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    # ...
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /usr/share/nginx/html;
        index index.html;
        server_name _;
        location / {
            try_files $uri $uri/ =404;
        }
        # ...
    }
}

該檔案包含了使用者和工作進程的設定、日誌格式、存取日誌位置、檔案傳輸設定和一個預設的HTTP伺服器區塊等。其中listen指令定義了該伺服器區塊應該監聽的連接埠。此範例中的80端口被定義為預設的伺服器端口,如果使用者在瀏覽器中使用IP位址訪問,則Nginx會訪問伺服器上的預設檔案並返回到客戶端。

  1. 優化Nginx設定

Nginx的效能取決於許多因素,包括伺服器設定和網路環境。為了最佳化Nginx的效能,您可以進行以下操作:

  • 啟用Nginx的快取功能。這將加速靜態檔案請求的回應時間,例如CSS檔案、JavaScript檔案和映像檔。以標準HTTP快取機制為例,以下是範例配置:
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
        location ~* .(png|jpg|jpeg|gif|ico)$ {
            proxy_cache my_cache;
            proxy_pass http://backend;
        }
    }
}
  • #透過增加worker_processes數量來提高效能。 worker_processes數量應該等於伺服器上可用的CPU核心數量。例如,如果伺服器有四個CPU核心,則worker_process應該設定為4。
  • 啟用TCP nopush和nodelay功能。這會減少TCP協定的延遲和丟包。以下是一個範例設定:
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    # ...
}
  1. 安全部署

#Nginx的安全性非常重要。以下是一些安全部署的建議:

  • 使用HTTPS協定來加密資料傳輸,特別是敏感資料傳輸,如銀行帳戶資訊或信用卡號碼。使用憑證可確保資料傳輸在傳輸過程中不會被竄改或竊取。
  • 限制請求速率以防止網站遭受DDoS攻擊。例如,使用Nginx的limit_req_zone指令來設定請求速率。
http {
    limit_req_zone $binary_remote_addr zone=my_zone:10m rate=1r/s;
    server {
        location / {
            limit_req zone=my_zone burst=5 nodelay;
            # ...
        }
    }
}
  • 限制檔案上傳大小以防止惡意檔案上傳。使用Nginx的client_max_body_size指令來設定檔案大小限制。
http {
    client_max_body_size 10M;
    server {
        location /upload {
            # ...
        }
    }
}
  • 關閉系統不必要的服務。例如,如果您的伺服器不需要郵件服務,則應關閉郵件服務以降低風險。
  • 定期更新系統和軟體以確保安全性。應該在更新發布後及時將更新應用到伺服器。

本文詳細介紹了Nginx的安裝、設定、最佳化和安全性部署。這些步驟可以確保Nginx伺服器的高效能、安全性和穩定性。

以上是Nginx安全部署:從伺服器設定開始的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn