场景如下。
example.com 服务器,提供 80 或端口服务取决于用户的选择。
该服务器将被移至 Nginx 实例后面,该实例将充当反向代理(和负载平衡器),并相应地提供 HTTP 和 HTTPS 服务。
笔记:
- 在 Nginx 中设置证书应该不是问题。
- 只有当前支持 HTTPS 服务时,Nginx 才会使用 HTTPS 与后端服务器进行通信。
- Nginx支持多个虚拟主机,(即多个域名)。
重点是,到目前为止我遇到的所有示例都是针对 http 和 https 在不同的子域中提供服务的情况,例如
server_name www.example.com;
和
server_name secure.example.com;
问题是,这种情况的配置是什么样的?
答案1
由于您的 SSL 端不会在同一个虚拟主机配置中,因此您需要在两个单独的服务器 {} 配置指令中进行此操作。
你应该能够做类似的事情
server {
listen 80 default;
server_name example.com _;
....
}
server {
listen 443 default;
server_name example.com _;
....
}
由于您有两个单独的监听端口,您将能够拥有同一虚拟主机名的多个实例 - 每个端口一个(80 为 http,443 为 https)
您可能需要考虑在两个 server{} 指令之间使用包含来包含通用配置,这样就不必在文件中重复配置
例如
server {
listen 80 default;
include /etc/nginx/conf/common.conf; }
server {
listen 443 default;
include /etc/nginx/conf/common.conf;
}