【问题标题】:Nginx how to host different sites to the same domain but on different portsNginx如何将不同的站点托管到同一个域但在不同的端口上
【发布时间】:2022-01-20 14:59:46
【问题描述】:

我在 ubuntu 服务器上有两个 laravel A 和 B 项目。我的 IP:80 打开了一个站点。我希望站点 B 也可以在 IP:{port} 上打开。是否可以使用 Nginx? 到目前为止,我尝试的是在可用站点中创建另一个配置文件:

server {
  listen 777;
  root /var/www/B/public;
  ..
}

但它没有打开站点 B。有什么建议吗?

【问题讨论】:

    标签: ubuntu nginx


    【解决方案1】:

    多个端口可以监听同一个server 块。考虑使用[::]: 也可以在 IP6 上收听

    server {
      listen      80;
      listen [::]:80;
      listen      777;
      listen [::]:777;
    
      server_name a.example.com
                  b.example.com;
      ...
    }
    

    如果使用不同的根,则使用 2 个服务器块。 include 指令可以包含两个块的通用配置:

    server {
      listen      80;
      listen [::]:80;
    
      server_name   a.example.com;
      root /var/www/a.example.com;
      include conf.d/includes/common.conf;
    }
    
    server {
      listen      777;
      listen [::]:777;
    
      server_name   b.example.com;
      root /var/www/b.example.com;
      include conf.d/includes/common.conf;
    }
    

    使用 curl 测试以避免浏览器缓存:

    $ curl -I http://example.com:80/
    $ curl -I http://example.com:777/
    

    【讨论】:

    • 但是如何区分两个不同的项目文件夹......在同一个服务器块中。
    猜你喜欢
    • 1970-01-01
    • 2015-02-09
    • 2021-05-06
    • 1970-01-01
    • 2013-10-15
    • 2015-03-15
    • 2012-02-15
    • 1970-01-01
    • 2021-05-29
    相关资源
    最近更新 更多