1

似乎有很多不同的相互冲突的做事方式,所以我有点困惑,需要一些帮助。我的服务器上有几个站点在不同的端口上运行。我在端口 8085 上有一个项目管理站点,在 3000 上有一个仪表板等。我想为每一个创建子域,我希望能够使用 nginx 而不是屏蔽来完成。

现在我有一条指向我的 IP 地址的 DNS A 记录,它成功显示“欢迎使用 nginx!” 页。我该如何做到这一点,以便如果我访问带有 projects.url.com 的页面,nginx 会将其代理传递给http://localhost:8085,并且正确的 url 将继续显示在浏览器中?

谢谢你的帮助!

这是我当前的站点文件片段,它似乎没有起到作用:

server {
listen 80;
server_name projects.calben.xyz www.projects.calben.xyz;
location / {
    proxy_pass http://localhost:8085/;
}
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        try_files $uri $uri/ =404;
    }
}
4

1 回答 1

1

首先设置一个通配符子域以指向您的服务器 IP。或者,如果您愿意,您可以设置您想要的特定子域。

https://www.namecheap.com/support/knowledgebase/article.aspx/597/2237/how-can-i-set-up-a-catchall-wildcard-subdomain

假设你有一个配置维护的 nginx/etc/nginx/sites-available

您将备份并删除/etc/nginx/sites-available/default.conf. 然后您将使用您的子域名添加文件

sub.example.com.conf

server {
   listen 80;
   server_name sub.example.com;

   location / {
      proxy_pass http://127.0.0.1:8085;
   }
}

然后符号链接这个文件/etc/nginx/sites-enabled/sub.example.com.conf并重新启动 nginx。现在您的网站应该可以在http://sub.example.com

于 2017-09-17T18:26:20.563 回答