将docker容器转发到nginx端口

将docker容器转发到nginx端口

我有一台运行 nginx 的服务器,还有一个指向服务器的域,并且我有一个配置为在服务器上有 nginx 的 CWP。

现在我有一个在同一台服务器的 3000 端口上运行的 docker 容器,如果我像这样对其进行 curl curl http://localhost:3000,我就会得到结果。

我的问题是如何将我的域请求转发到服务器上正在运行的 docker 容器,我已经做了一些搜索,但就我而言,请注意,服务器上没有任何单独启动 nginx 的容器,它是服务器上的默认 nginx,

现在的问题是我如何将服务器的端口 80(已经指向我的 domain.com)映射到我正在运行的 docker 容器???

答案1

在主机上的 NGINX 上创建服务器块

server {
    listen       80;
    server_name  domain.tld;

    location / {
        proxy_pass http://localhost:3000;
    } 
}

答案2

NGINX 通过允许在客户端和后端服务器之间建立隧道来支持 WebSockets。

# WebSocket proxying
map $http_upgrade $connection_upgrade {
    default         upgrade;
    ''              close;
}


server {
    listen 80;

    # The host name to respond to
    server_name cdn.domain.com;

    location / {
        # Backend nodejs server
        proxy_pass          http://localhost:3000;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade     $http_upgrade;
        proxy_set_header    Connection  $connection_upgrade;
    }
}

相关内容