详解Nginx 虚拟主机配置的三种方式(基于端口)
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net
千家信息网最后更新 2026年10月31日详解Nginx 虚拟主机配置的三种方式(基于端口)
Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。
详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net/article/14974.htm
详解Nginx 虚拟主机配置的三种方式(基于域名) https://www.jb51.net/article/14978.htm
2、Nginx基于端口的虚拟主机配置
如一台服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配置。
2.1 假设服务器有个IP地址为192.168.2.154
[root@localhost conf]# ifconfig ens33:4 192.168.2.154/24 up[root@localhost conf]# ifconfigens33:4: flags=4163mtu 1500 inet 192.168.2.154 netmask 255.255.255.0 broadcast 192.168.2.255 ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet)
2.2 需要配置的虚拟主机分别为7081、8081和9081,配置主机的host文件便于测试。
[root@localhost conf]# vim /etc/hosts[root@localhost conf]# cat /etc/hosts|grep 192.168.2.154192.168.2.154 www.test154.com
2.3 建立虚拟主机存放网页的根目录,并创建首页文件index.html
[root@localhost conf]# cd /data/www/[root@localhost www]# mkdir port[root@localhost www]# cd port/[root@localhost port]# mkdir 7081 8081 9081[root@localhost port]# ls7081 8081 9081[root@localhost port]# echo "port 7081" > 7081/index.html[root@localhost port]# echo "port 8081" > 8081/index.html[root@localhost port]# echo "port 9081" > 9081/index.html
2.4 修改nginx.conf,将虚拟主机配置文件包含进主文件
[root@localhost /]# cd /usr/local/nginx/conf/[root@localhost conf]# lsfastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utffastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default[root@localhost conf]# vim nginx.conf
在nginx.conf文件末尾加入以下配置
# 在http段中找到以下内容并删除每行前面的"#" log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';# 配置文件结尾的最后一个"}"之前加入以下语句,如下所示include vhost/*.conf
2.5 编辑每个端口的配置文件
[root@localhost vhost]# vim www.test154.7081.conf[root@localhost vhost]# cat www.test154.7081.conf server { listen 192.168.2.154:7081; # 配置成实际的域名,每个虚拟主机的配置文件域名都相同 #server_name www.test.com; access_log /data/logs/www.test154.7081.log main; error_log /data/logs/www.test154.7081.error.log; location / { root /data/www/port/7081; index index.html index.htm; } }[root@localhost vhost]# vim www.test154.8081.conf[root@localhost vhost]# cat www.test154.8081.conf server { listen 192.168.2.154:8081; # 配置成实际的域名,每个虚拟主机的配置文件域名都相同 #server_name www.test.com; access_log /data/logs/www.test154.8081.log main; error_log /data/logs/www.test154.8081.error.log; location / { root /data/www/port/8081; index index.html index.htm; } }[root@localhost vhost]# vim www.test154.9081.conf[root@localhost vhost]# cat www.test154.9081.conf server { listen 192.168.2.154:9081; # 配置成实际的域名,每个虚拟主机的配置文件域名都相同 #server_name www.test.com; access_log /data/logs/www.test154.9081.log main; error_log /data/logs/www.test154.9081.error.log; location / { root /data/www/port/9081; index index.html index.htm; } }2.6 创建日志文件,否则无法启动nginx
[root@localhost /]# mkdir -p /data/logs[root@localhost /]# touch /data/logs/www.test154.7081.log[root@localhost /]# touch /data/logs/www.test154.7081.error.log[root@localhost /]# touch /data/logs/www.test154.8081.log[root@localhost /]# touch /data/logs/www.test154.8081.error.log[root@localhost /]# touch /data/logs/www.test154.9081.log[root@localhost /]# touch /data/logs/www.test154.9081.error.log[root@localhost /]# ls /data/logs/www.test154.7081.error.log www.test154.8081.error.log www.test154.9081.error.logwww.test154.7081.log www.test154.8081.log www.test154.9081.log
2.7 先测试配置文件然后再启动nginx
[root@localhost /]# cd /usr/local/nginx/sbin/[root@localhost sbin]# ./nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful# 启动nginx[root@localhost sbin]# ./nginx
2.8 测试文件
[root@localhost ~]# curl http://www.test154.com:7081port 7081[root@localhost ~]# curl http://www.test154.com:8081port 8081[root@localhost ~]# curl http://www.test154.com:9081port 9081
附:配置过程中的问题
1、最后测试时发生的问题
[root@localhost sbin]# curl http://www.test154.com:7081curl: (7) Failed connect to www.test154.com:7081; 拒绝连接[root@localhost sbin]# curl 192.168.2.154:7081curl: (7) Failed connect to 192.168.2.154:7081; 拒绝连接
解决方法:
1.1 使用以下命令查看Nginx是否在监听相应的端口
[root@localhost conf]# netstat -lntActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:111 0.0.0.0:* LISTENtcp 0 0 192.168.2.153:80 0.0.0.0:* LISTENtcp 0 0 192.168.2.152:80 0.0.0.0:* LISTENtcp 0 0 192.168.2.151:80 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTENtcp 0 0 192.168.2.154:8081 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:* LISTENtcp 0 0 192.168.2.154:9081 0.0.0.0:* LISTENtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTENtcp 0 0 192.168.2.154:7081 0.0.0.0:* LISTENtcp6 0 0 :::111 :::* LISTENtcp6 0 0 :::22 :::* LISTENtcp6 0 0 :::23 :::* LISTENtcp6 0 0 ::1:25 :::* LISTEN
1.2 若Nginx未监听相应端口则重启Nginx服务,再不行重启服务器
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
配置
主机
虚拟主机
文件
域名
端口
服务
测试
方式
相同
实际
服务器
不同
内容
问题
支持
监听
不行
只有
命令
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海卓越科技互联网
互联网科技活动banner
互联网科技巨头监管
科技股互联网
互联网科技卖菜
朗新科技与工业互联网
互联网 科技
华宇互联网科技
奇酷互联网科技
朗涯互联网科技
碳银互联网科技有限公司
互联网和高科技公司
北京三清互联网科技
互联网之后的科技是什么
互联网科技博主是什么意思
小米互联网科技园设置
宁夏众和广鑫互联网科技有限公司
开一家科技互联网公司需要多少钱
众联互联网络科技
东风日产互联网科技公司叫什么
互联网科技未来
互联网科技上市公司
福州新华互联网科技学校 知乎
昭通互联网科技选哪家
如何创新互联网科技
爱医互联网络科技
广东工业互联网大赛深圳学泰科技
美国互联网科技公司
四川互联网展示科技馆设计
悟空问答互联网科技