nginx二级域名反向代理

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配置的官方文档以及配置参数的最佳实践

posted @ 2019-05-31 10:51  努力编程的小猪  阅读(5797)  评论(1编辑  收藏  举报