来自https://blog.csdn.net/jxjdhdnd推荐一个程序员编程资料站http://cxyroad.com副业赚钱专栏https://xbt100.top2024年IDEA最新激活方法后台回复激活码CSDN免登录复制代码插件下载CSDN复制插件以下是正文。Nginx 是一款高性能的 Web 服务器支持多种虚拟主机配置方式能够根据域名、IP 或端口区分不同的站点。这种灵活性让 Nginx 成为搭建多站点服务的首选工具。本文将带你一步步实现三种常见的虚拟主机配置方法基于域名、基于 IP 和基于端口的虚拟主机。无论你是初学者还是有经验的运维人员这篇教程都能帮助你快速掌握虚拟主机的配置技巧。以下案例演示 是基于源码包安装的nignx (如果你是rpm包 也差不多 只用把路径改为你nginx的路径即可 其他没什么大的变化如果你是小白请绕道)1. 基于域名的虚拟主机步骤 1准备网站根目录为每个域名创建独立的子目录并添加测试页面[rootlocalhost ~]# mkdir -p /usr/local/nginx/html/site1 [rootlocalhost ~]# mkdir -p /usr/local/nginx/html/site2 [rootlocalhost ~]# echo Welcome to Site 1 /usr/local/nginx/html/site1/index.html [rootlocalhost ~]# echo Welcome to Site 2 /usr/local/nginx/html/site2/index.html步骤 2修改 Nginx 配置文件打开 Nginx 的配置文件[rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf在 http 配置段中添加以下内容注释如果需要两个虚拟主机 只用将再额外添加一个server即可# 全局配置 user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # 基于域名的虚拟主机配置 server { listen 80; server_name www.site1.com; # 网站根目录 root html/site1; index index.html index.htm; # 日志配置 access_log logs/site1_access.log; error_log logs/site1_error.log; # 主路径配置 location / { try_files $uri$uri/ 404; } # 状态监控 location /status { stub_status on; access_log off; allow 192.168.14.112; deny all; } # 错误页面配置 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location /404.html { root html/site1; } location /50x.html { root html; } # 禁止访问 .ht 文件 location ~ /\.ht { deny all; } } server { listen 80; server_name www.site2.com; # 网站根目录 root html/site2; index index.html index.htm; # 日志配置 access_log logs/site2_access.log; error_log logs/site2_error.log; # 主路径配置 location / { try_files $uri$uri/ 404; } # 错误页面配置 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location /404.html { root html/site2; } location /50x.html { root html; } # 禁止访问 .ht 文件 location ~ /\.ht { deny all; } } }步骤 3测试配置并重启 Nginx测试配置文件语法[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -t重启 Nginx 服务[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -s reload步骤 4访问测试在浏览器中访问http://www.site1.com应显示 Welcome to Site 1。http://www.site2.com应显示 Welcome to Site 2。客户端测试修改hosts文件(本地dns解析)[rootlocalhost ~]# vim /etc/hosts2. 基于 IP 的虚拟主机步骤 1准备网站根目录为每个 IP 创建独立的子目录并添加测试页面[rootlocalhost ~]# mkdir -p /usr/local/nginx/html/ip1 [rootlocalhost ~]# mkdir -p /usr/local/nginx/html/ip2 [rootlocalhost ~]# echo Welcome to IP 192.168.14.111 /usr/local/nginx/html/ip1/index.html [rootlocalhost ~]# echo Welcome to IP 192.168.14.112 /usr/local/nginx/html/ip2/index.html步骤 2修改 Nginx 配置文件打开 Nginx 的配置文件[rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf在 http 配置段中添加以下内容server { listen 192.168.14.111:80; server_name 192.168.14.111; root html/ip1; # 使用默认路径的子目录 index index.html; location / { try_files $uri$uri/ 404; } # 错误页面 error_page 500 502 503 504 /50x.html; location /50x.html { root html; # 默认错误页面路径 } } server { listen 192.168.14.112:80; server_name 192.168.14.112; root html/ip2; # 使用默认路径的子目录 index index.html; location / { try_files $uri$uri/ 404; } # 错误页面 error_page 500 502 503 504 /50x.html; location /50x.html { root html; # 默认错误页面路径 } }步骤 3测试配置并重启 Nginx测试配置文件语法[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -t重启 Nginx 服务[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -s reload步骤 4访问测试在浏览器中访问http://192.168.14.111应显示 Welcome to IP 192.168.14.111。http://192.168.14.112应显示 Welcome to IP 192.168.14.112。客户端测试因为我在虚拟机测试 只有一个网卡 所以我在虚拟一个网卡 这个你可以忽视 看测试结果即可ip addr add 192.168.14.110/24 dev ens333. 基于端口的虚拟主机步骤 1准备网站根目录为每个端口创建独立的子目录并添加测试页面[rootlocalhost ~]# mkdir -p /usr/local/nginx/html/port1 [rootlocalhost ~]# mkdir -p /usr/local/nginx/html/port2 [rootlocalhost ~]# echo Welcome to Port 8080 /usr/local/nginx/html/port1/index.html [rootlocalhost ~]# echo Welcome to Port 9090 /usr/local/nginx/html/port2/index.html步骤 2修改 Nginx 配置文件打开 Nginx 的配置文件[rootlocalhost ~]# vim /usr/local/nginx/conf/nginx.conf在 http 配置段中添加以下内容server { listen 8080; server_name localhost; root html/port1; # 使用默认路径的子目录 index index.html; location / { try_files $uri$uri/ 404; } # 错误页面 error_page 500 502 503 504 /50x.html; location /50x.html { root html; # 默认错误页面路径 } } server { listen 9090; server_name localhost; root html/port2; # 使用默认路径的子目录 index index.html; location / { try_files $uri$uri/ 404; } # 错误页面 error_page 500 502 503 504 /50x.html; location /50x.html { root html; # 默认错误页面路径 } }步骤 3测试配置并重启 Nginx测试配置文件语法[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -t重启 Nginx 服务[rootlocalhost ~]# /usr/local/nginx/sbin/nginx -s reload步骤 4访问测试在浏览器中访问http://192.168.14.111:8080应显示 Welcome to Port 8080。http://192.168.14.111:9090应显示 Welcome to Port 9090。客户端测试4.总结通过本文的详细步骤我们成功实现了基于域名、IP 和端口的虚拟主机配置。Nginx 的灵活性和高性能使其能够轻松应对多站点服务的需求。这些配置方法不仅适用于日常开发和测试环境也能在生产环境中提供稳定可靠的服务。如果你对 Nginx 的配置还有疑问或其他需求欢迎留言交流让我们共同学习、共同进步END推荐阅读副业赚钱推荐让你的时间开始变现免费体验AI图片生成就在 Image Generator Hub程序员在线工具站cxytools.com 推荐一个自己写的工具站https://cxytools.com专为程序员设计包括时间日期、 JSON处理、SQL格式化、随机字符串生成、UUID生成、文本Hash...等功能提升开发效 率。 ⬇戳阅读原文直达 朕已阅