项目场景:
利用nginx进行后端请求转发
问题描述:
描述:利用docker拉取的nginx配置请求转发显示404
2021/12/01 01:36:16 [error] 8#8: *2231 open() "/etc/nginx/html/50x.html" failed (2: No such file or directory), client: 192.168.0.249, server: localhost, request: "GET /api/index/consultantfirmBenefitcensus HTTP/1.1", upstream: "http://127.0.0.1:18082/index/consultantfirmBenefitcensus", host: "192.168.0.249"
原因分析:
由于nginx是运行在docker容器中的,这个 localhost 是容器的localhost,而不是宿主机的localhost。
解决方案:
容器中访问到宿主机的网络
最简单的办法就是在启动容器的时候指定网络模式为host
docker run --network host --name nginx -v /mydata/nginx/html:/usr/share/nginx/html -v /mydata/nginx/logs:/var/log/nginx -v /mydata/nginx/conf:/etc/nginx -v /data/video:/data/video -v /data/images:/data/images -v /opt/dataease/web:/opt/dataease/web -d nginx:1.10