如何从Docker容器内部将代理(proxy_pass)反向传送到外部(本地网络)

如何从Docker容器内部将代理(proxy_pass)反向传送到外部(本地网络),docker,nginx,docker-compose,reverse-proxy,octoprint,Docker,Nginx,Docker Compose,Reverse Proxy,Octoprint,上一个标题:使用Docker Nginx容器在本地网络的另一台机器上代理网站 我很想从外部访问我的3D打印机(OctoPrint)。目前可在http://192.168.1.198在我家 我在另一台服务器上安装了docker,我家的端口80和443指向该服务器。在该服务器上,我使用Traefik将所有域和子域转发到任何需要它的容器 所以我想,好吧,如果我只是创建另一个Nginx容器,其中只是OctoPrint的代理呢。你猜怎么着,没那么容易 当前我的docker compose.yml如下所示:

上一个标题:使用Docker Nginx容器在本地网络的另一台机器上代理网站

我很想从外部访问我的3D打印机(OctoPrint)。目前可在
http://192.168.1.198
在我家

我在另一台服务器上安装了docker,我家的端口80和443指向该服务器。在该服务器上,我使用Traefik将所有域和子域转发到任何需要它的容器

所以我想,好吧,如果我只是创建另一个Nginx容器,其中只是OctoPrint的代理呢。你猜怎么着,没那么容易

当前我的
docker compose.yml
如下所示:

版本:“2”
服务:
网状物:
图片:nginx
重新启动:始终
网络:
-traefik_代理
卷数:
-./default.conf:/etc/nginx/conf.d/default.conf
标签:
-traefik.enable=true
-traefik.http.routers.manuele0.entrypoints=http
-traefik.http.routers.manuele0.rule=Host(`.`)| | Host(`www.`)| | Host(`3d-printer-1.`)
-traefik.http.routers.manuele0.middleware=to_https
#重定向到主域
-traefik.http.routers.manuele1.entrypoints=https
-traefik.http.routers.manuele1.rule=Host(``)
-traefik.http.routers.manuele1.tls=true
-traefik.http.routers.manuele1.tls.certresolver=le
-traefik.http.routers.manuele1.middleware=将\u重定向到\u manuele
-traefik.http.middleware.redirect\u to\u manuele.redirectregex.regex=^https:\/\/([^\/]*)\/(.*))
-traefik.http.middleware.redirect_to_manuele.redirectregex.replacement=https://www./$${2}
-traefik.http.routers.manuele.entrypoints=https
-traefik.http.routers.manuele.rule=Host(`www.`)| Host(`3d-printer-1.`)
-traefik.http.routers.manuele.tls=true
-traefik.http.routers.manuele.tls.certresolver=le
网络:
traefik_代理:
外部:正确
以及Nginx配置:

#
服务器{
听80;
听[:]:80;
服务器名称为3d-printer-1。;
地点/{
代理通行证http://192.168.1.198;
#proxy_http_版本1.1;
#代理缓冲关闭;
代理设置头主机$http\U主机;
#代理设置头升级$http\U升级;
#proxy\u set\u头连接$proxy\u连接;
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
#proxy\u set\u header X-Forwarded-Proto$proxy\u X\u Forwarded\u Proto;
#proxy_set_header X-Forwarded-Ssl$proxy_X_Forwarded_Ssl;
#proxy\u set\u header X-Forwarded-Port$proxy\u X\u Forwarded\u Port;
上的代理截获错误;
过期;
}
#错误\u第404/404.html页;
#将服务器错误页面重定向到静态页面/50x.html
#
错误\u第500页502 503 504/50x.html;
location=/50x.html{
root/usr/share/nginx/html;
}
}

http://192.168.1.198
不起作用,那么我怎么才能代理它呢?

我还没有测试它,但下面的内容似乎朝着正确的方向发展(不是问题本身,而是参数
--add host
):我还没有测试它,但下面的内容似乎朝着正确的方向发展(不是问题本身,而是参数
--addhost
):