在現(xiàn)代網(wǎng)站的架構(gòu)中,Nginx 是一款非常流行且高效的 Web 服務(wù)器,它常常被用作負載均衡器、反向代理服務(wù)器和 HTTP 緩存。對于使用 Ubuntu 18.04 的開發(fā)者和系統(tǒng)管理員來說,安裝和優(yōu)化 Nginx 是保證服務(wù)器性能和穩(wěn)定性的重要步驟。本文將詳細介紹如何在 Ubuntu 18 上安裝 Nginx,并提供一系列優(yōu)化技巧,幫助你提升服務(wù)器性能、提高網(wǎng)站加載速度和增強安全性。
一、Nginx 的安裝準備
在開始安裝 Nginx 之前,首先需要確保你的系統(tǒng)是最新的。通過執(zhí)行以下命令來更新 Ubuntu 的軟件包列表:
sudo apt update sudo apt upgrade
更新完畢后,安裝 Nginx 非常簡單,可以通過以下命令直接從 Ubuntu 的官方軟件庫中安裝:
sudo apt install nginx
這將會安裝最新穩(wěn)定版本的 Nginx。安裝完成后,可以通過以下命令檢查 Nginx 是否安裝成功:
nginx -v
如果一切順利,命令會返回 Nginx 的版本號。
二、啟動和管理 Nginx 服務(wù)
安裝完 Nginx 后,我們可以啟動服務(wù),并設(shè)置其在系統(tǒng)啟動時自動啟動。使用以下命令啟動 Nginx 服務(wù):
sudo systemctl start nginx
如果想要讓 Nginx 在系統(tǒng)啟動時自動啟動,可以執(zhí)行:
sudo systemctl enable nginx
要停止 Nginx 服務(wù),可以使用以下命令:
sudo systemctl stop nginx
查看 Nginx 服務(wù)的狀態(tài),可以使用:
sudo systemctl status nginx
此命令會顯示 Nginx 服務(wù)的當(dāng)前運行狀態(tài)。
三、配置防火墻以允許 Nginx 訪問
安裝并啟動 Nginx 后,可能需要配置防火墻以允許 HTTP 和 HTTPS 流量。如果你在服務(wù)器上啟用了 UFW(Uncomplicated Firewall),可以通過以下命令允許 Nginx 訪問:
sudo ufw allow 'Nginx Full'
此命令會自動配置 UFW 以允許 HTTP(端口80)和 HTTPS(端口443)流量。如果你只想允許 HTTP 流量,可以使用:
sudo ufw allow 'Nginx HTTP'
通過以下命令可以檢查防火墻規(guī)則是否正確設(shè)置:
sudo ufw status
四、配置 Nginx
安裝 Nginx 后,默認的配置文件存放在 "/etc/nginx/nginx.conf" 中,虛擬主機配置文件則位于 "/etc/nginx/sites-available/" 目錄下??梢酝ㄟ^編輯這些文件來配置 Nginx。首先,檢查默認的配置文件是否正常工作:
sudo nano /etc/nginx/nginx.conf
可以通過該文件進行一些基本的配置調(diào)整,例如修改工作進程的數(shù)量、日志記錄等。修改完成后,記得保存并退出。
在 Nginx 配置文件中,你可以設(shè)置服務(wù)器的根目錄、訪問權(quán)限、日志記錄等。假設(shè)你想要配置一個網(wǎng)站的虛擬主機,可以在 "/etc/nginx/sites-available/" 目錄下創(chuàng)建一個新的配置文件:
sudo nano /etc/nginx/sites-available/yourdomain.com
配置文件內(nèi)容示例如下:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}創(chuàng)建好虛擬主機配置文件后,使用以下命令將其鏈接到 "sites-enabled" 目錄:
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
最后,檢查 Nginx 配置是否正確:
sudo nginx -t
如果配置正確,可以重新加載 Nginx 使配置生效:
sudo systemctl reload nginx
五、Nginx 性能優(yōu)化
在 Nginx 的安裝和基本配置完成后,接下來的重點是優(yōu)化 Nginx 性能。以下是幾個優(yōu)化 Nginx 的常見技巧:
1. 調(diào)整工作進程數(shù)
根據(jù)服務(wù)器的 CPU 核心數(shù)調(diào)整 Nginx 的工作進程數(shù),能夠提升性能。通常情況下,設(shè)置工作進程數(shù)等于 CPU 核心數(shù)是一個不錯的選擇。在 "nginx.conf" 配置文件中,修改 "worker_processes" 參數(shù):
worker_processes auto;
這個設(shè)置會使 Nginx 自動根據(jù) CPU 核心數(shù)來調(diào)整工作進程數(shù)。
2. 使用緩存機制
為提高 Nginx 的響應(yīng)速度,可以啟用靜態(tài)文件緩存。例如,你可以通過 "expires" 指令設(shè)置文件的緩存時間:
location /images/ {
expires 30d;
}這將會使 "/images/" 目錄下的文件在客戶端緩存 30 天。
3. 壓縮輸出內(nèi)容
啟用 Gzip 壓縮可以有效減少傳輸?shù)臄?shù)據(jù)量,從而提高網(wǎng)站的加載速度。在 "nginx.conf" 文件中啟用 Gzip:
gzip on; gzip_types text/plain application/xml text/css application/javascript; gzip_min_length 1000;
這會啟用對指定 MIME 類型的文件進行壓縮,從而減少帶寬的使用。
4. 調(diào)整緩存和緩沖區(qū)
通過調(diào)整緩沖區(qū)的大小來優(yōu)化 Nginx 對靜態(tài)資源的處理效率。例如,增加 "client_body_buffer_size" 和 "client_max_body_size" 可以提高大文件上傳的處理能力:
client_max_body_size 10M; client_body_buffer_size 128k;
六、增強安全性
為了確保服務(wù)器的安全性,Nginx 提供了多種安全設(shè)置。以下是一些常見的安全配置:
1. 禁止訪問敏感文件
為了防止用戶訪問敏感文件,如 ".htaccess" 或 ".git" 文件,可以在 Nginx 配置文件中添加如下內(nèi)容:
location ~ /\. {
deny all;
}2. 禁用服務(wù)器信息泄露
為了防止 Nginx 返回版本信息或其他敏感信息,可以禁用這些信息的顯示:
server_tokens off;
3. 限制 HTTP 請求頭
可以通過限制 HTTP 請求頭的大小來避免潛在的 DoS 攻擊:
http {
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
}七、總結(jié)
本文詳細介紹了在 Ubuntu 18.04 上安裝和優(yōu)化 Nginx 的步驟。從安裝和配置基本的 Nginx 服務(wù),到通過調(diào)整配置文件提升服務(wù)器性能,再到采取安全措施保障網(wǎng)站安全,所有步驟都已經(jīng)覆蓋。通過這些優(yōu)化措施,你可以使你的 Nginx 服務(wù)更加高效、安全,并且為用戶提供更快速、更穩(wěn)定的訪問體驗。
在進行 Nginx 優(yōu)化時,請根據(jù)自己的實際需求進行配置調(diào)整。無論是為靜態(tài)網(wǎng)站加速、為高流量網(wǎng)站提供負載均衡,還是為復(fù)雜的 Web 應(yīng)用配置緩存,Nginx 都能滿足你的需求。希望本文能幫助你在 Ubuntu 18 上成功安裝和優(yōu)化 Nginx。