【问题标题】:How to configure nginx's default.conf如何配置nginx的default.conf
【发布时间】:2019-01-21 09:58:53
【问题描述】:

我正在尝试在/etc/nginx/conf.d 中配置default.conf 以显示位于/home/ubuntu/project-source/company/entry/index.html 的简单登录页面。

据我所知,域设置正确,指向服务器

A: test24.company.io -> <aws-elastic-IP>

default.conf:

server {
    listen       80;
    server_name  localhost;

    index index.html;

    location / {
        root   /home/ubuntu/project-source/company/entry;
    }
}

server {
    server_name test24.company.io www.test24.company.io;

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/test24.company.io/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/test24.company.io/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = test24.company.io) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen      80;
    server_name test24.company.io www.test24.company.io;
    return 404; # managed by Certbot
}

附加问题:该项目将在 2 个子域上运行 2 个进程,比如说 sub1sub2,它们将分别在 localhost:3001localhost:3002 上运行,我如何配置 default.conf 指向/代理到这些过程也是?

【问题讨论】:

    标签: nginx dns nginx-location nginx-config


    【解决方案1】:

    先用这种方式将HTTP重定向到HTTPS

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

    其次您的服务器根目录不包含在 SSL 服务器中,它应该包含

    root   /home/ubuntu/project-source/company/entry;
    

    第三 您可以在不同的端口上添加您想要的应用程序。只需复制粘贴整个服务器代码并更改所需的值,例如根位置和 PORT

    编辑结束后保存并重启服务器

    sudo service nginx restart
    

    【讨论】:

    • 您将 http 重定向到 https 的方式是正确的,但我将其排除在我的解决方案之外,因为重定向是由 certbot 本身生成的,因此无需手动添加。
    【解决方案2】:

    好吧,经过几天和几个小时的折腾,我得出了这个解决方案:

    1. 在 GoDaddy 的 DNS 上,我添加了以下记录:
      A: test24.company.io -&gt; &lt;aws-elastic-IP&gt;
      A: sub1.test24.company.io -&gt; &lt;aws-elastic-IP&gt;
      A: sub2.test24.company.io -&gt; &lt;aws-elastic-IP&gt;
      注意: 3条记录都指向同一个弹性IP,无需为每个子域设置单独的弹性IP。

    2. nginx conf文件配置如下: https://gist.github.com/ahmed-abdelazim/b3536c1780afc4215ef57633bbe77a88

    This 帖子是一个非常有用的指南,用于为您的服务器上的不同端口设置 nginx 代理。

    nginx 配置文件中的所有其余部分都是由 certbot 生成的,它还管理从 http 到 https 的重定向。




    mods 注意:由于某种原因,我似乎无法在此答案中格式化 GitHubGist 的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-15
      • 2019-11-14
      • 2023-03-14
      • 2012-11-07
      • 2014-04-04
      • 2020-12-21
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多