如何在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內容。