Nginx 配置怎麼寫提示詞(反向代理、HTTPS 證書、WebSocket、上載文件大小、gzip、前端單頁應用路由)
要用 Nginx 部署網站、做反向代理,或者遇到 413 上載太大、502 網關錯誤、WebSocket 連不上、刷新頁面 404 這類問題時用:描述部署結構,得到帶註釋的配置,每個指令說明作用,並給出檢查配置和平滑重載的命令。
通用大模型 對話模型通用
你是一名運維工程師,熟悉 Nginx 的配置和排錯。請幫我編寫或修改 Nginx 配置。 - 部署結構:[部署結構](例:前端靜態文件 + 後端 Node 服務在 3000 端口) - 域名與 HTTPS:[域名與證書](例:已有證書文件,需要 HTTP 跳轉 HTTPS) - 需要支持的功能:[功能](例:WebSocket、上載 50MB 文件、單頁應用路由) - Nginx 運行方式:[運行方式](例:宿主機安裝、Docker 容器) - 現有配置或報錯訊息(排錯時填寫): [粘貼配置或報錯] 要求: 1. 結構:按站點拆分配置文件;說明配置文件放在哪裏、主配置如何引入。 2. HTTPS:證書路徑、只啟用安全的協議版本、HTTP 自動跳轉 HTTPS;需要時開啟 HSTS,並提醒開啟後難以回退。 3. 反向代理:正確傳遞真實客戶端 IP、協議和主機名;超時設定;後端多實例時的負載均衡寫法。 4. WebSocket:升級請求所需的請求頭,以及長連接的讀取超時。 5. 上載:請求體大小限制與對應的超時。 6. 靜態資源:前端單頁應用刷新時回退到入口文件;帶哈希的靜態資源長期緩存,入口 HTML 不緩存;gzip 或更好的壓縮方式。 7. 安全:隱藏版本號;禁止訪問隱藏文件和備份文件;常見安全響應頭。 8. 排錯:根據報錯(如 413、502、504、重定向循環、跨域錯誤)說明可能原因與排查步驟,包括查看錯誤日誌的位置。 輸出:完整配置(每段帶中文註釋),以及檢查配置語法、平滑重載的命令。Docker 運行時說明容器內訪問後端時不能用 localhost 的問題。
高亮處換成你自己的內容:[部署結構]、[域名與證書]、[功能]、[運行方式]、[粘貼配置或報錯]
ChatGPT Plus 充值
已被複製 0 次
使用說明
怎麼填變量:[部署結構] 寫清楚前後端分別在哪裏、端口多少、是否在同一台機器或同一個容器網絡中。[現有配置或報錯訊息] 排錯時貼上完整的 server 塊和錯誤日誌中的對應行,比只描述現象有效得多。
常見坑:
- Nginx 在 Docker 容器中運行時,配置裏寫
localhost:3000指向的是容器自己,而不是宿主機上的後端服務,結果就是 502。 - 修改了上載大小限制,但後端框架自己也有大小限制,或者前面還有一層負載均衡、CDN 的限制,只改 Nginx 不夠。
- 修改配置後直接重啟,配置有錯時服務就起不來。先檢查語法再平滑重載。
追問技巧:追問「給這個站點加上按 IP 限流,防止接口被刷」,或「把證書改為自動續期,並說明續期後如何讓 Nginx 自動加載新證書」。
示例輸出
示例,僅供參考(節選)
nginx
server {
listen 443 ssl;
http2 on;
server_name example.com;
ssl_certificate /etc/nginx/certs/example.com.pem;
ssl_certificate_key /etc/nginx/certs/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
client_max_body_size 50m; # 上載大小上限,超出返回 413
location /api/ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /ws/ {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; # WebSocket 升級
proxy_set_header Connection "upgrade";
proxy_read_timeout 3600s; # 長連接不被提前斷開
}
location / {
root /var/www/app;
try_files $uri $uri/ /index.html; # 單頁應用刷新不 404
}
}
bash
nginx -t && nginx -s reload
說明:http2 on; 是較新版本的寫法,舊版本寫在 listen 後面(listen 443 ssl http2;),以你的 Nginx 版本為準。
同款作品
用這條提示詞做出來的作品;原作者會因此獲得積分
還沒有同款,來做第一個。


0 條評論
還沒有評論,來搶沙發~