【Nginx】配置Nginx以支持主域名和二级域名

您所在的位置:网站首页 添加二级域名的方法 【Nginx】配置Nginx以支持主域名和二级域名

【Nginx】配置Nginx以支持主域名和二级域名

2024-06-13 21:44| 来源: 网络整理| 查看: 265

生命就像是一场告别 从起点对一切说再见 你拥有的仅仅是伤痕 在回望来路的时候 那天我们相遇在街上 彼此寒暄并报以微笑 我们相互拥抱挥手道别 转过身后已泪流满面                      🎵 蔡健雅《当我想你的时候》

Nginx是一款高性能的Web服务器和反向代理服务器,广泛用于提供静态内容服务、负载均衡以及作为HTTP缓存。在许多情况下,我们需要通过Nginx来同时管理主域名和二级域名的流量。例如,主域名(如www.example.com)用于提供公司的主要网站内容,而二级域名(如api.example.com)用于提供API服务。本文将通过一个示例配置,展示如何使用Nginx来配置主域名和二级域名,并解释配置中的关键部分。

Nginx配置代码示例

以下是一个Nginx配置示例,其中包括了两个不同的server块,分别用于主域名www.lpv.cc和二级域名spider.lpv.cc的配置:

# 配置主域名 www.lpv.cc 的HTTPS服务 server { listen 443 ssl; server_name www.ss33.com; # 指定域名 ssl_certificate cert/ss33.com.pem; # SSL证书文件路径 ssl_certificate_key cert/ss33.com.key; # SSL证书私钥文件路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { root /var/www/movie/admin; # 静态文件的根目录 index index.html index.htm; # 默认的索引文件 } } # HTTP到HTTPS的重定向 server { listen 80; server_name www.ss33.cc; return 301 https://$host$request_uri; # 301重定向到HTTPS } # 配置二级域名 spider.lpv.cc 的HTTPS服务 server { listen 443 ssl; server_name spider.ss33.cc; # 指定二级域名 ssl_certificate cert/spider.ss33.cc.pem; # SSL证书文件路径 ssl_certificate_key cert/spider.ss33.cc.key; # SSL证书私钥文件路径 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:2331; # 将请求代理到本地的2331端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } # HTTP到HTTPS的重定向 server { listen 80; server_name spider.ss33.cc; return 301 https://$host$request_uri; # 301重定向到HTTPS } 配置解释

HTTPS配置 对于主域名和二级域名,我们通过配置listen 443 ssl;来监听443端口,并启用SSL。server_name指令指定了该配置适用的域名。

ssl_certificate和ssl_certificate_key指令指定了SSL证书和私钥的路径。这些证书用于启用HTTPS,确保数据传输的安全性。

ssl_session_cache和ssl_session_timeout优化了SSL/TLS会话的性能和时长。

ssl_ciphers和ssl_protocols指定了支持的加密套件和TLS协议版本,以确保使用最佳的安全实践。

ssl_prefer_server_ciphers on;确保服务器优先选择它支持的加密算法,这有助于提高安全性。

静态内容和反向代理配置

对于www.ss33.com主域名,我们通过location /块指定了静态内容的根目录root /var/www/movie/admin;,并设置了默认的索引文件为index.html和index.htm。这意味着当用户访问www.ss33.com时,Nginx将会提供/var/www/movie/admin目录下的静态内容。

对于spider.ss33.com二级域名,我们通过location /块中的proxy_pass http://127.0.0.1:2331;将所有请求代理到了本地的2331端口。此配置通常用于当Nginx背后有一个Web应用或API服务运行在该端口时。通过proxy_set_header指令,我们确保了原始请求的一些关键头部信息(如Host、真实IP、转发信息等)被正确地传递给后端服务。

HTTP到HTTPS的重定向

我们为每个域名配置了一个额外的server块,用于监听80端口(HTTP),并通过return 301 https://$host$request_uri;实现了自动重定向到对应的HTTPS地址。这样做的目的是确保所有的流量都通过安全的HTTPS连接,提高网站的安全性和可靠性。

配置的关键点

证书路径:确保SSL证书和私钥的路径正确,并且文件权限允许Nginx访问。

域名配置:server_name指令需正确设置为你的主域名和二级域名。

静态内容与代理服务:根据你的实际需求选择提供静态内容还是通过Nginx代理到后端服务。对于静态内容,设置正确的root路径;对于代理服务,配置正确的proxy_pass目标地址及相关头部信息。

安全性配置:使用现代的加密算法和协议(如TLS 1.2和TLS 1.3),禁用已知不安全的算法。

HTTP到HTTPS重定向:对于所有通过HTTP访问的请求,确保它们被重定向到HTTPS,以利用SSL/TLS提供的加密和安全性。

结语

通过这份Nginx配置,你可以为你的主域名和二级域名提供安全、高效的Web服务,并根据需要轻松地提供静态内容或将请求代理到后端应用。记得在应用新配置后重载或重启Nginx服务,以使更改生效。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3