在Ubuntu上優化Nginx SSL配置可以顯著提高網站的安全性和性能。以下是一些常見的優化步驟和建議:
首先,確保你已經安裝了Nginx和SSL證書。如果沒有安裝,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx
sudo apt install certbot python3-certbot-nginx
使用Certbot獲取并安裝SSL證書:
sudo certbot --nginx -d yourdomain.com
編輯Nginx配置文件,通常位于 /etc/nginx/sites-available/yourdomain.com
:
sudo nano /etc/nginx/sites-available/yourdomain.com
確保配置文件中包含以下SSL相關設置:
server {
listen 443 ssl http2;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# 啟用HTTP/2
http2;
# 啟用Gzip壓縮
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
# 啟用OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# 啟用HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 靜態文件緩存
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
# 其他配置...
}
編輯 /etc/nginx/nginx.conf
文件:
sudo nano /etc/nginx/nginx.conf
調整以下參數:
worker_processes auto; # 根據CPU核心數自動調整
worker_connections 1024; # 每個工作進程的最大連接數
在 /etc/sysctl.conf
文件中添加以下內容:
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
應用更改:
sudo sysctl -p
編輯 /etc/security/limits.conf
文件:
sudo nano /etc/security/limits.conf
添加以下內容:
* soft nofile 65535
* hard nofile 65535
完成所有配置后,重啟Nginx以應用更改:
sudo systemctl restart nginx
使用工具如 nginx-stats
、htop
等監控Nginx的性能,并根據實際情況進一步調整配置。
通過以上步驟,你可以在Ubuntu上配置一個性能優化的Nginx SSL服務器。