nginx二級域名反向代理
添加兩個開發測試的域名
test.xxx.com :8088
testmobile.xxx.com: 8089
內網地址:127.0.0.1
外網地址:127.0.0.1
配置
server
{
listen 80;
server_name test.xxx.com;
location / {
proxy_redirect off;
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_pass http://127.0.0.1:8088;
}
access_log /var/log/nginx/dev-train-yingtongscf-com.log;
}
server
{
listen 80;
server_name testmobile.xxx.com;
location / {
proxy_redirect off;
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_pass http://127.0.0.1:8089;
}
access_log /var/log/nginx/dev-trainmobile-yingtongscf-com.log;
}
配置說明:
listen 80 # 監聽的端口;一定要把 80 端口留給負責代理的Nginx。
server_name jira.51cto.com; # 要監聽的域名;
proxy_pass http://127.0.0.1:8080; # 要轉發的內網訪問的IP和端口;
access_log /var/log/nginx/jira-51cto-com.log; # 日志,注意路徑是否存在
配置重啟后,即時生效性,如果無法登陸一般的原因:
域名解析生效時間。一般的域名解析最低生效時間是10分鍾,有時候可能大於這個值。
本地DNS緩存。可在CMD使用 ipconfig /flushdns 命令刷新本地DNS緩存。
瀏覽器緩存。這個可能才是最不容易發現的,尤其是谷歌瀏覽器。F12之后,右鍵左上角地址欄邊上的刷新按鈕,點擊清空緩存並硬性重新加載。
服務未重啟。service nginx restart 有時候可能沒有先 stop, 再 start 好用。
啟動腳本
將配置拷貝到服務器的路徑:/ND-DATA/nginx/nginx.conf
containerName="server-nginx"
allImageNmae="nginx"
port="80"
# 刪除容器
docker stop ${containerName} && docker rm ${containerName}
# 啟動容器
docker run -d -p ${port}:80 --name=${containerName} --restart=always \
-v /ND-DATA/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro \
${allImageNmae}
后續
需要學習nginx配置的官方文檔以及配置參數的最佳實踐
