如何使用Nginx连接到Docker image中的我的应用程序?
我的Nginx不在docker映像中。我的应用程序在docker图像中。他们都住在同一台服务器上 我不希望Nginx出现在docker映像中,因为它的配置看起来非常复杂。但我的应用程序正在docker容器中运行 如何配置Nginx以使用运行我的应用程序的docker映像 这是我的Nginx配置文件:如何使用Nginx连接到Docker image中的我的应用程序?,nginx,docker,reverse-proxy,Nginx,Docker,Reverse Proxy,我的Nginx不在docker映像中。我的应用程序在docker图像中。他们都住在同一台服务器上 我不希望Nginx出现在docker映像中,因为它的配置看起来非常复杂。但我的应用程序正在docker容器中运行 如何配置Nginx以使用运行我的应用程序的docker映像 这是我的Nginx配置文件: server { listen 80; server_name my.domain.com; return 301 h
server {
listen 80;
server_name my.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.nicolasxu.space nicolasxu.space;
# add Strict-Transport-Security to prevent man in the middle attacks
add_header Strict-Transport-Security "max-age=31536000";
ssl_certificate /root/.ssh/nicolasxu.space.cert;
ssl_certificate_key /root/nicolasxu.space.key;
[....]
}
要轻松将nginx(在docker主机中)设置为停靠的Web应用程序前面的反向代理,您只需发布Web应用程序的端口并将流量路由到此端口:
docker run --publish 127.0.0.1:8080:8080 --name jenkins jenkins
127.0.0.1
上的端口80(这避免了在不使用任何防火墙的情况下向任何人打开端口8080)。详细说明了如何在Docker中操作端口
编辑 为了获得最佳性能,您还可以使用:
docker run --network=host ...
当使用
--network=host
时,docker将指示容器使用主机网络堆栈。您不必在主机上发布端口,因为它是同一个网络堆栈,web应用程序将在其本机端口上可用。nginx是服务应用程序的反向代理吗?还是一个经典的web服务器?@Françoisstorel反向代理,而不是经典服务器。谢谢这是很多新知识。非常感谢你!让我先试试!
docker run --network=host ...