如何在Ubuntu 20.04上安裝和配置Nginx?


Nginx是一款流行的開源Web伺服器軟體,可用作反向代理、負載均衡器、HTTP快取等等。它以速度和可擴充套件性著稱,廣泛用於為高流量網站提供Web內容。

如果您正在執行Ubuntu 20.04伺服器,並希望使用Nginx作為您的Web伺服器,本指南將引導您完成安裝和基本配置過程。

步驟1:更新系統

在開始之前,最好更新系統以確保所有軟體包都是最新的。您可以透過執行以下命令來實現:

sudo apt update && sudo apt upgrade -y

這將更新軟體包列表並安裝任何可用的更新。

步驟2:安裝Nginx

系統更新後,您可以繼續安裝Nginx。您可以透過執行以下命令來實現:

sudo apt install nginx -y

這將在您的Ubuntu 20.04伺服器上安裝最新版本的Nginx。

步驟3:配置Nginx

安裝Nginx後,您可以開始配置它來提供您的Web內容。預設情況下,Nginx將提供位於/var/www/html目錄中的內容。您可以透過在Web瀏覽器中訪問伺服器的IP地址來測試Nginx是否正常工作。

要配置Nginx以提供您自己的內容,您需要在/etc/nginx/sites-available目錄中建立一個新的配置檔案。您可以使用您喜歡的文字編輯器(例如nano或vim)建立一個新檔案。

sudo nano /etc/nginx/sites-available/example.com

在此檔案中,您可以定義您的伺服器塊,其中將包含您網站的配置。這是一個基本伺服器塊的示例:

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;
}

此配置將伺服器設定為監聽埠80,並從/var/www/example.com目錄提供內容。您可以將example.com替換為您自己的域名,並將/var/www/example.com替換為您Web內容的路徑。

建立配置檔案後,您需要建立一個符號連結來啟用它。您可以透過執行以下命令來實現:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

最後,您可以測試您的配置並透過執行以下命令重新啟動Nginx:

sudo nginx -t

sudo systemctl restart nginx

如果沒有錯誤,您的網站現在應該可以執行,並且可以透過您的域名訪問。

步驟4:配置SSL/TLS

如果您正在提供敏感資訊或接受使用者資料,則必須使用SSL/TLS加密來保護您的網站。您可以透過獲取SSL/TLS證書並將Nginx配置為使用它來實現。

獲取SSL/TLS證書的一種流行方法是透過Let's Encrypt,這是一個免費且開放的證書頒發機構。您可以透過執行以下命令在伺服器上安裝Let's Encrypt客戶端:

sudo apt install certbot python3-certbot-nginx -y

安裝Let's Encrypt客戶端後,您可以透過執行以下命令為您的域名獲取證書:

sudo certbot --nginx -d example.com

這將執行Let's Encrypt客戶端並將Nginx配置為使用新獲得的SSL/TLS證書。

以下是一些在Ubuntu 20.04上使用Nginx時可能需要考慮的更高階的配置選項:

自定義伺服器塊

在上一節中,我們建立了一個簡單的伺服器塊,它從特定目錄提供內容。但是,您可能有多個域或子域需要從同一伺服器提供服務。為此,您可以建立其他伺服器塊來定義每個域或子域的配置。

例如,假設您有兩個域名,example.com和example.org。您可以為每個域名建立一個伺服器塊,並將它們放在/etc/nginx/sites-available目錄中。然後,您可以透過在/etc/nginx/sites-enabled目錄中建立符號連結來啟用每個伺服器塊。

sudo nano /etc/nginx/sites-available/example.com

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;
}

sudo nano /etc/nginx/sites-available/example.org

server {
   listen 80;
   server_name example.org;
   root /var/www/example.org;
   index index.html;
}

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example.org /etc/nginx/sites-enabled/

啟用快取

Nginx還可以用作快取伺服器來提高網站的效能。透過快取經常訪問的內容,Nginx可以減少Web伺服器的負載並縮短訪問者的響應時間。

要啟用快取,您可以將以下配置新增到您的伺服器塊中:

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;

   # Enable caching
   location / {
      proxy_cache_valid 200 60m;
      proxy_cache_bypass $http_pragma;
      proxy_cache_revalidate on;
      proxy_cache_min_uses 3;
      proxy_cache_use_stale error timeout invalid_header http_502;
      proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_cache_lock on;
      proxy_cache_methods GET HEAD POST;
      add_header X-Cache-Status $upstream_cache_status;
   }
}

此配置為所有請求啟用快取並將快取過期時間設定為60分鐘。您可以調整快取設定以滿足您網站的需求。

負載均衡

如果您有多個Web伺服器,您可以使用Nginx作為負載均衡器來跨伺服器分配傳入流量。這可以提高網站的可擴充套件性和可靠性。

要啟用負載均衡,您可以將以下配置新增到您的伺服器塊中:

server {
   listen 80;
   server_name example.com;
   root /var/www/example.com;
   index index.html;

   # Enable load balancing
   upstream backend {
      server backend1.example.com;
      server backend2.example.com;
   }

   location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

此配置定義了一個名為“backend”的上游組,其中包括兩臺伺服器,backend1.example.com和backend2.example.com。location塊然後將請求代理到backend組,在兩臺伺服器之間分配流量。

這些只是Nginx提供的一些高階配置選項示例。透過瀏覽官方文件和社群論壇,您可以發現更多自定義和最佳化Nginx以滿足您的特定需求的方法。

防火牆配置

與任何伺服器一樣,確保您的Ubuntu 20.04伺服器使用防火牆進行保護非常重要。預設情況下,Ubuntu 20.04預裝了UFW(Uncomplicated Firewall)。

要允許流量訪問Nginx,您可以向UFW新增一條規則以允許埠80上的HTTP流量:

sudo ufw allow 80/tcp

如果您使用SSL/TLS加密,還可以新增一條規則以允許埠443上的HTTPS流量:

sudo ufw allow 443/tcp

有了這些規則,您的Ubuntu 20.04伺服器應該透過UFW得到妥善保護。

監控和日誌記錄

監控Nginx伺服器的效能和可用性以確保其平穩執行非常重要。您可以使用各種工具和服務來監控您的伺服器,包括:

  • Nginx Amplify - 一款專為Nginx設計的監控和管理工具。它為您的Nginx伺服器提供即時效能指標和警報。

  • Netdata - 一款即時監控和故障排除工具,它提供有關伺服器各個方面的詳細資訊指標,包括Nginx。

  • Prometheus - 一款流行的開源監控解決方案,可用於監控Nginx以及其他應用程式和系統。

除了監控之外,跟蹤Nginx生成的訪問和錯誤日誌也很重要。這些日誌可以提供對您網站行為的寶貴見解,並可以幫助您解決問題。

預設情況下,Nginx日誌儲存在/var/log/nginx目錄中。您可以透過執行以下命令檢視訪問日誌:

sudo tail -f /var/log/nginx/access.log

您可以透過執行以下命令檢視錯誤日誌:

sudo tail -f /var/log/nginx/error.log

結論

在本指南中,我們介紹了在Ubuntu 20.04伺服器上安裝和配置Nginx的過程。我們首先更新系統並安裝Nginx。然後,我們配置Nginx以提供我們的Web內容並測試配置。最後,我們使用Let's Encrypt透過SSL/TLS加密保護了我們的網站。

請記住,這只是一個基本配置,您可以使用許多其他選項和模組來根據您的特定需求自定義Nginx。您可以閱讀官方文件或加入Nginx社群論壇以瞭解更多關於Nginx的資訊。

總的來說,Nginx是一款功能強大且通用的Web伺服器軟體,可以處理各種Web應用程式和流量負載。透過遵循這些步驟,您可以在您的Ubuntu 20.04伺服器上開始使用Nginx,並開始向世界提供您的Web內容。

更新於:2023年5月12日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告