我有一台运行 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;
}
}