jol*_*ege 9 proxy nginx docker
我正在尝试使用nginx工作的docker容器作为其他docker容器的反向代理,并且我继续在除了基本位置'/'之外的其他位置上获得"Bad Gateway".
我有以下服务器块:
server {
listen 80;
location / {
proxy_pass "http://game2048:8080";
}
location /game {
proxy_pass "http://game:9999";
}
}
Run Code Online (Sandbox Code Playgroud)
它适用http://localhost但不适用于http://localhost/game浏览器中的"Bad Gateway"和nginx容器上的"Bad Gateway":
[error] 7#7: *6 connect() failed (111: Connection refused)
while connecting to upstream, client: 172.17.0.1, server: ,
request: "GET /game HTTP/1.1", upstream: "http://172.17.0.4:9999/game",
host: "localhost"
Run Code Online (Sandbox Code Playgroud)
我使用官方的nginx docker镜像并在其上放置我自己的配置.您可以在此处测试并查看所有详细信息:https: //github.com/jollege/ngprox1
任何想法出了什么问题?
注意:我在docker主机上设置了本地主机名条目以匹配这些名称:
127.0.1.1 game2048
127.0.1.1 game
Run Code Online (Sandbox Code Playgroud)
jol*_*ege 13
我修好了它!我在nginx配置中的不同服务器块中设置服务器名称.请记住使用docker端口,而不是主机端口.
server {
listen 80;
server_name game2048;
location / {
proxy_pass "http://game2048:8080";
}
}
server {
listen 80;
server_name game;
location / {
# Remember to refer to docker port, not host port
# which is 9999 in this case:
proxy_pass "http://game:8080";
}
}
Run Code Online (Sandbox Code Playgroud)
github repo已经更新以反映修复,旧的自述文件在那里./README.old01.md.
当我仔细地将问题写给别人时,我找到了答案.你知道那种感觉吗?
Was*_*des 11
我有同样的“502 Bad Gateway”错误,但解决方案是按照此帖子说明调整 proxy_buffer_size :
proxy_buffering off;
proxy_buffer_size 16k;
proxy_busy_buffers_size 24k;
proxy_buffers 64 4k;
Run Code Online (Sandbox Code Playgroud)
查看nginx错误日志
sudo tail -n 100 /var/log/nginx/error.log
Run Code Online (Sandbox Code Playgroud)
如果您在日志中看到权限被拒绝错误,如下所示 -
2022/03/28 03:51:09 [crit] 1140954#0: *141 connect() 到 xxx.xxx.68.xx:8080 在连接到上游时失败(13:权限被拒绝),客户端:xxx.xx。 xxx.25,服务器:www.example.com
httpd_can_network_connect通过运行命令查看 的值是否启用:sudo getsebool -a | grep httpd
httpd_can_network_connect如果您看到is的值,off那么这就是您的问题的原因。
解决方案:通过运行命令httpd_can_network_connect设置值onsudo setsebool httpd_can_network_connect on -P
希望它能解决您的问题。
| 归档时间: |
|
| 查看次数: |
22814 次 |
| 最近记录: |