当前位置:首页 > 服务器技术 > 正文

Nginx IP虚拟主机配置详解(手把手教你用不同IP搭建多个网站)

在Web开发和运维中,我们经常需要在同一台服务器上托管多个网站。Nginx作为高性能的Web服务器和反向代理工具,支持多种虚拟主机方式,其中IP虚拟主机是一种基于不同IP地址区分站点的方法。

Nginx IP虚拟主机配置详解(手把手教你用不同IP搭建多个网站) Nginx虚拟主机 IP虚拟主机 Nginx配置教程 Web服务器配置 第1张

什么是IP虚拟主机?

IP虚拟主机(IP-based Virtual Host)是指通过为服务器绑定多个IP地址,每个IP地址对应一个独立的网站。当用户访问不同的IP地址时,Nginx会根据请求的目标IP返回对应的网站内容。

这种方式适用于你拥有多个公网IP地址的场景,比如企业级服务器或云服务器绑定了多个弹性IP。

前提条件

  • 已安装Nginx(如未安装,请先执行 sudo apt install nginx
  • 服务器至少有两个可用的IP地址(可以是公网IP或内网IP)
  • 具备基本的Linux命令行操作能力

步骤一:确认服务器IP地址

首先,查看你的服务器当前有哪些IP地址:

ip addr show

假设你看到两个IP地址:192.168.1.10192.168.1.11(实际可能是公网IP,如 203.0.113.10203.0.113.11)。

步骤二:创建网站目录

为每个IP对应的网站创建独立的目录:

sudo mkdir -p /var/www/site1sudo mkdir -p /var/www/site2echo "<h2>欢迎访问网站1</h2>" | sudo tee /var/www/site1/index.htmlecho "<h2>欢迎访问网站2</h2>" | sudo tee /var/www/site2/index.html

步骤三:配置Nginx虚拟主机

进入Nginx配置目录,通常位于 /etc/nginx/sites-available/,创建两个配置文件:

配置 site1(对应 IP 192.168.1.10):

server {    listen 192.168.1.10:80;    server_name _;    root /var/www/site1;    index index.html;    location / {        try_files $uri $uri/ =404;    }}

配置 site2(对应 IP 192.168.1.11):

server {    listen 192.168.1.11:80;    server_name _;    root /var/www/site2;    index index.html;    location / {        try_files $uri $uri/ =404;    }}

将这两个配置文件分别保存为 /etc/nginx/sites-available/site1.conf/etc/nginx/sites-available/site2.conf

步骤四:启用配置并测试

创建符号链接以启用站点:

sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/site2.conf /etc/nginx/sites-enabled/

检查Nginx配置是否正确:

sudo nginx -t

如果显示“syntax is ok”和“test is successful”,说明配置无误。重启Nginx使配置生效:

sudo systemctl reload nginx

步骤五:验证结果

现在,你可以通过浏览器或 curl 命令分别访问两个IP:

curl http://192.168.1.10# 输出:<h2>欢迎访问网站1</h2>curl http://192.168.1.11# 输出:<h2>欢迎访问网站2</h2>

恭喜!你已经成功配置了基于IP的Nginx虚拟主机。

常见问题与注意事项

  • 确保防火墙允许80端口对两个IP的访问。
  • 如果你使用的是云服务器(如阿里云、腾讯云),需在控制台为实例绑定多个弹性IP。
  • IP虚拟主机比基于域名的虚拟主机(Name-based)更消耗IP资源,因此在IPv4地址紧张的今天,通常推荐使用基于域名的方式。但在某些安全隔离或SSL证书要求严格的场景下,IP虚拟主机仍是必要选择。

总结

通过本教程,你学会了如何利用Nginx的IP虚拟主机功能,在同一台服务器上通过不同IP地址托管多个网站。这项技能对于系统管理员和Web开发者来说非常实用,尤其在需要严格隔离不同服务的环境中。

记住关键词:Nginx虚拟主机IP虚拟主机Nginx配置教程Web服务器配置,它们将帮助你在未来快速检索相关知识。