对于拥有多个业务模块或希望针对不同子服务进行独立管理的网站来说,配置多个二级域名是常见的需求
本文将详细介绍如何在Nginx中配置多个二级域名,帮助您轻松实现这一目标
一、Nginx简介与准备工作 Nginx(发音同engine x)是一款开源的高性能HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器
Nginx以其稳定性、丰富的功能集、简单的配置和低资源消耗而著称
它可以在UNIX、GNU/Linux、BSD、macOS、Solaris以及Windows等多个操作系统上运行
在开始配置之前,请确保您已经完成了以下准备工作: 1.Nginx已安装:确保您的服务器上已经安装了Nginx,并且可以通过命令行访问
2.域名已注册:您需要在域名注册商处注册了顶级域名(如example.com),并计划在其下配置多个二级域名(如sub1.example.com、sub2.example.com)
3.DNS解析:在域名注册商或DNS管理平台上,为每个二级域名添加A记录或CNAME记录,指向您的服务器IP地址
二、Nginx配置文件结构 Nginx的配置文件通常位于`/etc/nginx/nginx.conf`(对于Debian/Ubuntu系统)或`/usr/local/nginx/conf/nginx.conf`(对于自定义安装)
Nginx的配置文件采用了模块化的设计,主要由以下几部分组成: - 全局块:配置影响nginx服务器整体运行的指令
- events块:配置影响nginx服务器或与客户端网络连接相关的指令
- http块:可以包含多个server块,用于定义虚拟主机的相关参数
每个`server`块定义了一个虚拟主机,可以监听不同的端口和域名
在每个`server`块中,您可以配置多个`location`块,用于处理不同的URL请求
三、配置多个二级域名 1. 创建独立的配置文件 为了保持配置的清晰和可维护性,建议为每个二级域名创建一个独立的配置文件
这些文件可以放在`/etc/nginx/conf.d/`(对于Debian/Ubuntu系统)或`/usr/local/nginx/conf/sites-enabled/`(对于自定义安装)目录下
例如,为`sub1.example.com`和`sub2.example.com`分别创建`sub1.conf`和`sub2.conf`文件
2. 配置server块 在每个配置文件中,定义一个`server`块,并设置`listen`指令指定监听端口(通常为80或443),以及`server_name`指令指定域名
sub1.conf示例: server { listen 80; server_name sub1.example.com; location/ { root /var/www/sub1; index index.html index.htm index.php; } # 其他配置,如日志、错误页面等 } sub2.conf示例: server { listen 80; server_name sub2.example.com; location/ { root /var/www/sub2; index index.html index.htm index.php; } # 其他配置,如日志、错误页面等 } 在上述配置中,`root`指令指定了每个二级域名对应的网站根目录
当用户访问`sub1.example.com`时,Nginx会将请求定向到`/var/www/sub1`目录下的`index.html`文件;同样,当用户