【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

相关文章

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

mysql8.0.43使用InnoDB Cluster配置主从复制

《mysql8.0.43使用InnoDBCluster配置主从复制》本文主要介绍了mysql8.0.43使用InnoDBCluster配置主从复制,文中通过示例代码介绍的非常详细,对大家的学习或者... 目录1、配置Hosts解析(所有服务器都要执行)2、安装mysql shell(所有服务器都要执行)3、

java程序远程debug原理与配置全过程

《java程序远程debug原理与配置全过程》文章介绍了Java远程调试的JPDA体系,包含JVMTI监控JVM、JDWP传输调试命令、JDI提供调试接口,通过-Xdebug、-Xrunjdwp参数配... 目录背景组成模块间联系IBM对三个模块的详细介绍编程使用总结背景日常工作中,每个程序员都会遇到bu

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po

Nginx实现端口映射的示例代码

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 找到nginx的部署路径2. 备份原来的配置文件3. 编辑nginx.conf文件4. 在