单个 VPS 上的多个站点 — Nginx 配置

单个 VPS 上的多个站点 — Nginx 配置

我正在尝试在我的 VPS 上托管 4 个 NodeJS 进程。其中两个是必须可以通过其名称在浏览器中访问的网站,我们将它们称为a.comb.coma.com在端口 3000 上运行,并b.com在端口 4000 上运行。另一个是在端口 7000 上运行但没有指向它的域名的网站,因此我想使用 VPS 的 IP 地址和端口来访问它,例如0.1.2.3:7000。最后一个是在端口 7500 上运行的 SocketIO 进程,也应该可以通过其地址访问:0.1.2.3:7500,但我猜它的配置应该与在 7000 上运行的配置类似,所以我们暂时忘掉它。

我认为我应该使用 Nginx 来执行此操作,但我无法配置它以使其工作。到目前为止,我已经设法使它a.com正常b.com工作,但我无法访问0.1.2.3:7000。到目前为止,我所做的是创建a.com和(在端口 7000 上运行的)配置文件,b.com并在 中为它们创建符号链接。c/etc/nginx/sites-available//etc/nginx/sites-enabled

a.com

server {
    listen 80;
    server_name www.a.com a.com
    access_log /var/log/nginx/a.com.access.log;
    rewrite_log on;
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}

百科

server {
    listen 80;
    server_name www.b.com b.com;
    access_log /var/log/nginx/b.com.access.log;
    rewrite_log on;
    location / {
        proxy_pass http://127.0.0.1:4000;
    }
}

C

server {
    listen 7000;
    server_name  _;
    access_log /var/log/nginx/c.access.log;
    location / {
        proxy_pass http://127.0.0.1:7000;
    }
}

就像我说的,我已经可以通过在浏览器的地址栏中输入其域名来访问a.comb.com。如何配置它才能c通过 访问0.1.2.3:7000

答案1

您的 C 配置包含与 7000 端口相冲突的绑定。这就是您无法使其工作的原因。我猜想某些东西已经绑定到 7000 端口,因为您正在那里代理请求。

相关内容