Docker 如何通过Nginx将外部请求的端口80和443分别转发到端口81和444?

Docker 如何通过Nginx将外部请求的端口80和443分别转发到端口81和444?,docker,nginx,ssl,ip,port,Docker,Nginx,Ssl,Ip,Port,我在自己的站点上有docker容器,我想从docker创建外部端口444和81,并将其连接到来自我的域的用户请求,该请求来自linux机器上的外部nginx。我如何组织nginx.example1.conf文件,我创建了容器,我只需要连接端口,如何在nginx.example1.conf文件中实现这一点,我做的是正确的吗 简而言之,如何正确编写nginx.example1.conf文件? 与nginX的任何其他反向代理配置相同,唯一的区别是端点位于localhost 这是一个简单的例子: ser

我在自己的站点上有docker容器,我想从docker创建外部端口444和81,并将其连接到来自我的域的用户请求,该请求来自linux机器上的外部nginx。我如何组织nginx.example1.conf文件,我创建了容器,我只需要连接端口,如何在nginx.example1.conf文件中实现这一点,我做的是正确的吗

简而言之,如何正确编写nginx.example1.conf文件?


nginX
的任何其他反向代理配置相同,唯一的区别是端点位于
localhost

这是一个简单的例子:

server {
    listen 80;
    server_name foobar.net www.foobar.net test.io www.test.io;

    location / {
        proxy_pass http://localhost:81;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

nginX
的任何其他反向代理配置相同,唯一的区别是端点位于
localhost

这是一个简单的例子:

server {
    listen 80;
    server_name foobar.net www.foobar.net test.io www.test.io;

    location / {
        proxy_pass http://localhost:81;
        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_set_header X-Forwarded-Proto $scheme;
    }
}

首先,公开docker上的端口(这意味着它们将在相同端口上从主机可见并可访问)
然后将主机nginx配置为反向代理,转到/requests上的localhost:444和localhost:81。首先,公开docker上的端口(这意味着它们将在相同端口上从主机可见并可访问)
然后将主机nginx配置为反向代理,转到/requests上的localhost:444和localhost:81,谢谢您的回答。对于端口443,我也这么做了,据我所知,ssl文件将有不同的链接?是的,但是要高兴地看到证书以及如何接近将创建的“双ssl”。我的方法是让服务始终保持在
http
上,并使用
nginX
解析证书并公开
https
,hanse如果您想使用这种方法,您也会将流量转发到端口80。也就是说,我是否可以仅使用http在Docker中删除证书,并仅使用外部nginX的证书?在这种情况下,我必须将端口80和443重定向到同一个内部端口81吗?正确,这是我安装时要做的。我在NginX上公开
80
443
(但通常在容器中),并将流量转发到docker容器上的
http
端口。谢谢您的回答。对于端口443,我也这么做了,据我所知,ssl文件将有不同的链接?是的,但是要高兴地看到证书以及如何接近将创建的“双ssl”。我的方法是让服务始终保持在
http
上,并使用
nginX
解析证书并公开
https
,hanse如果您想使用这种方法,您也会将流量转发到端口80。也就是说,我是否可以仅使用http在Docker中删除证书,并仅使用外部nginX的证书?在这种情况下,我必须将端口80和443重定向到同一个内部端口81吗?正确,这是我安装时要做的。我在NginX上公开
80
443
(但通常在容器中),并将流量转发到docker容器上的
http
端口。