详解Nginx 虚拟主机配置的三种方式(基于端口)
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net
千家信息网最后更新 2025年12月01日详解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安全错误
数据库的锁怎样保障安全
软件开发逻辑是什么
vb6的数据库应用
网络营销对比软件开发
中成药数据库
气象局网络安全定级
网络安全法第四十集
区域网无法解析服务器的dns
昆明软件开发定制公司哪家好
宿迁网络安全知识竞赛题库
网络技术第三章答案谢希仁
ddr5无盘服务器需要多大内存
马服服务器
杨浦区手机软件开发
小米电视机连接不上服务器
无锡企业网络安全处罚
百度云安全组关联服务器
数据库交叉表是什么意思
英国有没有网络安全
网络安全知识ttp
徐州海航软件开发质量服务
热门云服务器加盟平台
ibm服务器启动找不到光盘
软件开发逻辑是什么
探营网络安全技巧
义马软件开发哪家便宜
大连软件开发企业优惠
主流软件开发平台信息
易语言选择框数据库
德州市公安局网络安全科罗丹
解码后显示服务器关闭怎么办