Nginx - 将域名重定向到 localhost:port 内容

8

我在服务器上安装了Nginx(我的服务器使用WHM)。并且这个服务器有两个帐户。每个帐户将运行一个NextJS站点服务器,并且每个帐户都有自己的域名。

Site1将在端口3000上运行

Site2将在端口3004上运行

我的目标是:

当我访问domain1时,我可以看到在localhost:3000上运行的NextJS中的site1的内容

而当我访问domain2时,我可以看到在localhost:3004上运行的NextJS中的site2的内容

我试图对site1进行Nginx实现。但当我访问它时,我看到了一个Cpanel屏幕,网址为dominio1/cgi-sys/defaultwebpage.cgi

以下是我尝试进行的Nginx实现:

server {
    listen 80;

    server_name computadorsolidario.tec.br www.computadorsolidario.tec.br ;

    location / {
        proxy_pass http://localhost:3004;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}

那么我该如何为nginx进行此设置?我是否在更改正确的文件?
注意:我在/etc/nginx/conf.d/users/domain1/domio1.conf中创建了配置文件,在/etc/nginx/conf.d/users中有几个配置文件,名称是您在服务器上拥有的账户名。(它们已被实现。)

你尝试过使用 location /domain1 { proxy_pass http://localhost:3000 ...location /domain2 { proxy_pass http://localhost:3004 ... 吗? - tromgy
还没有!我会尝试! - Juliano Colere Ceccon Moreira
无法工作... 这是我的配置文件,其中包含/domain1。 - Juliano Colere Ceccon Moreira
服务器 { server_name computadorsolidario.tec.br www.computadorsolidario.tec.br; listen 80;root /home/computadorsolida/public_html; location /computadorsolidario.tec.br { proxy_pass http://localhost:3004; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; }} - Juliano Colere Ceccon Moreira
它会导致跳转到 domain/cgi-sys/defaultwebpage url.cgi 而不是下一个应用程序。 - Juliano Colere Ceccon Moreira
2个回答

9

尝试

  server {
    listen 80;
    server_name www.domain1.com;
    proxy_pass http://127.0.0.1:3000;
  }
  server {
    listen 80;
    server_name www.domain2.com domain2.com;
    proxy_pass http://127.0.0.1:3004;
  }

每个域名都在同一个端口上进行监听,并且反向代理到您指定的本地网络端口。为了区分主机,请指定server_name字段。

我尝试了这个,但在我的自定义域上却得到了“Forbidden”的错误。 - janpeterka
使用上述配置将2个不同的站点放在80端口上。但是它对于两个域名都打开了相同的站点。 - Twix
4
@humkins的回答是正确的:“proxy_pass”指令在此处不允许使用... - PJ Brunet

1
  server {
    listen 80;
    server_name www.domain1.com;
    location / {
      proxy_pass http://127.0.0.1:3000;
    }
  }
  server {
    listen 80;
    server_name www.domain2.com domain2.com;
    location / {
      proxy_pass http://127.0.0.1:3004;
    }
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接