nginx多端口虚拟主机配置文件
- 虚拟主机
- 2025-07-27
- 2797
server块设置不同端口和域名,实现多站点托管,每个块定义监听端口、域名及对应的根目录
配置步骤详解
-  修改主配置文件:打开Nginx的主配置文件(通常为 /etc/nginx/nginx.conf),在http块内添加多个server段,每个段对应一个虚拟主机。
 | 参数 | 作用 | 示例值 |
 |——————–|———————————————————————-|—————————————–|
 |listen| 指定监听的端口号 |8001,8002|
 |server_name| 绑定到该端口的域名或IP地址 |13.19.188(或其他自定义域名) |
 |root| 设置网站根目录路径 |html/html8001,html/html8002|
 |index| 定义默认索引文件及其优先级 |index.jsp index.html index.htm|
-  目录结构准备:根据配置中的 root路径创建对应的物理目录,并在每个目录下放置测试文件(如index.html),若root设为html/html8001,则需确保该路径存在且包含有效内容。
-  验证与重启服务:保存配置后,执行以下命令使更改生效:  - 检查语法正确性:sudo nginx -t;
- 平滑重启Nginx:cd /usr/local/nginx/sbin && nginx -s reload;
- 查看监听端口状态:通过ss -tulnp | grep nginx确认新端口已被占用。
 
- 检查语法正确性:
-  访问测试:使用浏览器或工具(如 curl)访问不同端口下的站点,http://服务器IP:8001和http://服务器IP:8002应分别展示各自目录的内容。
以下是一个完整的多端口虚拟主机配置示例:

# 第一个虚拟主机(端口8001)
server {
    listen 8001;
    server_name 106.13.19.188;
    root html/html8001;
    index index.jsp index.html index.htm;
}
# 第二个虚拟主机(端口8002)
server {
    listen 8002;
    server_name 106.13.19.188;
    root html/html8002;
    index index.jsp index.html index.htm;
} 
常见问题与解答
如何避免端口冲突?
解答:在添加新的监听端口前,建议先使用命令netstat -tuln | grep :<端口号>检查目标端口是否已被占用,若已被其他进程占用,需更换未使用的端口号,还需注意防火墙设置(如Ubuntu的ufw或CentOS的firewalld),确保开放了所需的端口。
同一台服务器能否同时支持HTTP和HTTPS协议?
解答:可以,只需在对应的server块中为HTTPS添加ssl参数即可。

server {
    listen 443 ssl;      # HTTPS默认端口
    listen 8443 ssl;      # 另一个HTTPS备用端口
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    ...
} 
此配置会同时启用443和8443两个HTTPS端口,并加载相同的SSL证书
 
  
			