我正在尝试在default.conf
中配置/etc/nginx/conf.d
,以显示位于/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个进程,例如sub1
和sub2
,它们将分别在localhost:3001
和localhost:3002
上运行,如何配置default.conf
也要指出/代理这些过程?
答案 0 :(得分: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
答案 1 :(得分:0)
好几天又好几个小时后,我才解决了这个问题:
在GoDaddy的DNS上,我添加了以下记录:
A: test24.company.io -> <aws-elastic-IP>
A: sub1.test24.company.io -> <aws-elastic-IP>
A: sub2.test24.company.io -> <aws-elastic-IP>
注释: 所有3条记录均指向相同的弹性IP,因此无需为每个子域设置单独的弹性IP。
nginx conf文件配置如下: https://gist.github.com/ahmed-abdelazim/b3536c1780afc4215ef57633bbe77a88
This帖子是为服务器上不同端口设置nginx代理的非常有用的指南。
nginx配置文件中的其余所有内容均由certbot生成,该certbot还管理了从http到https的重定向。
mod注释:由于某种原因,我似乎无法在此答案中格式化GitHubGist的代码。