【问题标题】:Setting up subdomains with nginx and Namecheap使用 nginx 和 Namecheap 设置子域
【发布时间】:2023-03-19 05:18:01
【问题描述】:

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

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

感谢您的帮助!

这是我当前的站点文件 sn-p,它似乎没有解决问题:

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;
    }
}

【问题讨论】:

    标签: nginx proxy dns ubuntu-server namecheap


    【解决方案1】:

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

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

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

    您将备份并删除/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访问了

    【讨论】:

    • 我添加了我当前的 nginx 设置。你能看看它有什么问题吗?谢谢!
    • 没有错误,但是当我尝试访问projects.calben.xyz时,我看到了默认的nginx页面。
    • 请将nginx -T的输出添加到您的问题中
    • 原来问题出在 DNS 方面!我按照您推荐的方式重新编写了 nginx 文件,一切正常,非常感谢!
    猜你喜欢
    • 2014-07-21
    • 2015-09-18
    • 2012-04-03
    • 2012-09-19
    • 1970-01-01
    • 2017-03-31
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多