单台服务器,nginx作为反向代理,多个域/网站

Rak*_*ori 6 nginx domain proxy reverse-proxy

我在 https 上为我的网站提供了这个 nginx 配置,其中 nginx 用作反向代理服务器:

  server {
      listen 80 default_server;
      listen [::]:80 default_server;
      server_name my_domain123.com www.my_domain123.com;
      return 301 https://$server_name$request_uri;
  }

  server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name localhost www.my_domain123.com;
    return 301 https://my_domain123.com$request_uri;
  }

  server {
      listen 443 ssl default_server;
      listen [::]:443 ssl default_server;
      server_name my_domain123.com;

    location / {
      proxy_redirect      http://localhost:4000 https://my_domain123.com;
      # ...........................

    }
Run Code Online (Sandbox Code Playgroud)

我应该如何调整它以便我可以在同一台服务器上托管具有不同域名的多个网站?我应该在配置中的哪个位置插入新网站的新配置?

或者我也应该为它再创建一个可用/启用的站点?然而,问题仍然存在:我将如何正确组合 2 个或更多配置——同一服务器、多个域——?

1Pe*_*ter 8

通常你会为新服务器创建一个新的配置文件 /etc/nginx/sites-available/newserver.conf 并从 /etc/nginx/sites-enabled 链接它。要将 nginx 用作反向代理,请在 nginx (ssl_certificate, ...) 中配置 SSL,并在位置部分使用 proxy_pass 到本地主机上的非 SSL 服务器。proxy_redirect 也是必需的,但它只会在您的非 SSL 本地服务器发送一个时修改 Location 标头。您可以在以下文章中找到一个示例。

本地主机上的多个 http 服务器使用不同的端口

    server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://localhost:8001 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://localhost:8002 https://mydomain-02.com;
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

本地主机上使用基于主机名的站点的单个 http 服务器

server {
    server_name mydomain-01.com;

    location / {
      proxy_redirect http://s1.localdomain:4000 https://mydomain-01.com;
      ...
    }
}
server {
    server_name mydomain-02.com;

    location / {
      proxy_redirect http://s2.localdomain:4000 https://mydomain-02.com;
      ...
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 你没明白我的问题 (2认同)