【问题标题】:Nginx subdomain configuration Letsencryt wildcard HTTPS certificateNginx 子域配置 Letsencryt 通配符 HTTPS 证书
【发布时间】:2019-08-19 21:26:07
【问题描述】:

我想做什么?

我在本地端口上有两个应用程序,我想这样访问它们:

  • maindomain.com -> node.js 应用程序
  • sub.maindomain.com -> .net 核心应用程序

我的 DNS 配置

  • maindomain.com(一条记录)11.111.11.111
  • sub.maindomain.com(一条记录)11.111.11.111

Nginx 配置

/etc/nginx/sites-enabled/maindomain.com(链接自 ./sites-available/)

upstream node_app{
        # node.js running
        server 127.0.0.1:8000;
}

server{
    listen 80;
    server_name www.maindomain.com maindomain.com;
    #Redirige toutes les requêtes http vers https
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/maindomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/maindomain.com/privkey.pem;

    server_name www.maindomain.com maindomain.com;

    location / {
        include proxy_params;
        proxy_pass http://node_app;
    }
}

/etc/nginx/sites-enabled/sub.maindomain.com(链接自/sites-available/)

upstream core_api{
        # Asp.net core API running in background
        server 127.0.0.1:5000;
}

server{
    listen 80;
    server_name www.sub.maindomain.com sub.maindomain.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/maindomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/maindomain.com/privkey.pem;

    server_name www.sub.maindomain.com sub.maindomain.com;

    location / {
        include proxy_params;
        proxy_pass http://core_api;
    }
}

结果: 之后,我重新启动了我的 nginx 服务。 sub.maindomain.com 上的请求只会重定向到 maindomain.com。

我错过了什么?

【问题讨论】:

    标签: nginx dns subdomain


    【解决方案1】:

    看来你忘了:

    server_name www.api-accropolis.maindomain.com api-accropolis.maindomain.com;
    

    ... 在 SSL 中 server/etc/nginx/sites-enabled/sub.maindomain.com

    你也忘了:

    server_name www.maindomain.com maindomain.com;
    

    ... 在 SSL 中 server/etc/nginx/sites-enabled/maindomain.fr

    【讨论】:

    • 我在示例中更改了一些值。我忘了说/etc/nginx/sites-enabled/maindomain.fr 运行良好。根据文档,我只能在 http 服务器中指定 server_name
    • 这些都是所有 HTTP 服务器,有些支持 TLS,有些不支持。您必须在每个 server 中指定 server_name,除非您正在做一些花哨的事情。
    • 我做到了,没有任何改变,语法很好但行为是一样的
    猜你喜欢
    • 2020-12-02
    • 2017-04-30
    • 2020-10-08
    • 2016-08-23
    • 2013-05-20
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2019-07-27
    相关资源
    最近更新 更多