详解Nginx 虚拟主机配置的三种方式(基于端口)
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Nginx配置虚拟主机支持3种方式:基于IP的虚拟主机配置,基于端口的虚拟主机配置,基于域名的虚拟主机配置。详解Nginx 虚拟主机配置的三种方式(基于IP) https://www.jb51.net
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
刀剑乱舞服务器
服务器连接慢
万国觉醒不同服务器可以互通吗
计算机网络技术的描述
如何看数据库用户的权限
机动车安全检测数据库修改
怎么分辨数据库主码
服务器网络存在风险
智能科技互联网平台
网络安全是什么课程
数据库中设置主键升序
华为网络技术工程师好进吗
设计网站属于软件开发吗
浏览器向服务器发送的内容包括
春节倒计时软件开发
简易qq数据库安全保密设计
教育软件开发及应用
数据库10g安装黑框没了
武汉市网络安全大会
昂达b365支持服务器内存吗
角色转服务器身上金币有没有限制
内蒙网络安全和信息化发展报告
大数据在软件开发的应用
合肥龙信网络技术有限公司
优秀的软件开发简历
java软件开发推荐书目
软件开发新人培训计划
服务器游戏怎么删除
管道数据库零件号的作用
网络安全教师征文