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

2024-03-25 02:04

本文主要是介绍【Nginx】配置Nginx以支持主域名和二级域名,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


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


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_cachessl_session_timeout优化了SSL/TLS会话的性能和时长。

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

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

静态内容和反向代理配置

对于www.ss33.com主域名,我们通过location /块指定了静态内容的根目录root /var/www/movie/admin;,并设置了默认的索引文件为index.htmlindex.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服务,以使更改生效。

这篇关于【Nginx】配置Nginx以支持主域名和二级域名的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843514

相关文章

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringBoot日志配置SLF4J和Logback的方法实现

《SpringBoot日志配置SLF4J和Logback的方法实现》日志记录是不可或缺的一部分,本文主要介绍了SpringBoot日志配置SLF4J和Logback的方法实现,文中通过示例代码介绍的非... 目录一、前言二、案例一:初识日志三、案例二:使用Lombok输出日志四、案例三:配置Logback一

springboot security之前后端分离配置方式

《springbootsecurity之前后端分离配置方式》:本文主要介绍springbootsecurity之前后端分离配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的... 目录前言自定义配置认证失败自定义处理登录相关接口匿名访问前置文章总结前言spring boot secu

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

SpringBoot中封装Cors自动配置方式

《SpringBoot中封装Cors自动配置方式》:本文主要介绍SpringBoot中封装Cors自动配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录SpringBoot封装Cors自动配置背景实现步骤1. 创建 GlobalCorsProperties

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各