logo

Linux下Nginx单IP配置多虚拟主机详解

2025-05-21 by Joshua Nash
image
在Linux环境下,通过配置Nginx,可以实现单个IP地址下的多虚拟主机,此过程涉及创建多个虚拟主机配置文件,并使用不同的server_name来区分各个虚拟主机,每个配置文件通常包含网站的基本设置、文档根目录、错误页面等信息,通过Nginx的负载均衡功能,还可以进一步优化性能和扩展性。
在Linux服务器上使用Nginx进行网站托管时,经常需要设置多个域名或子域名指向同一个服务器IP地址,这种情况下,Nginx可以通过配置实现单IP下的多虚拟主机访问,本文档将详细讲解如何在Linux系统中使用Nginx实现这一功能。
sudo apt-get update
sudo apt-get install nginx
创建Nginx配置文件

在Nginx的主配置目录(通常是 /etc/nginx/nginx.conf/etc/nginx/sites-available/)中创建一个新的配置文件,创建名为 example.com 的配置文件,用于配置 example.com 这个域名。

sudo nano /etc/nginx/sites-available/example.com

在该文件中添加如下配置:

server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
}

这里配置了两个子域名:example.comwww.example.com,并且指定了它们的根目录为 /var/www/example.comtry_files 指令确保当请求不匹配任何静态文件时,Nginx会继续检查是否是一个有效的目录,并尝试以静态文件的形式返回。

为其他域名创建类似的配置文件,为 blog.example.com 创建:

sudo nano /etc/nginx/sites-available/blog.example.com

添加如下配置:

server {
    listen 80;
    server_name blog.example.com;
    root /var/www/blog.example.com;
    index index.html index.htm;
    location / {
        try_files $uri $uri/ =404;
    }
}
链接并启用配置文件

为了使新创建的配置文件与Nginx一起工作,需要将其链接到 /etc/nginx/sites-enabled 目录,并确保其状态为“on”,执行以下命令:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/blog.example.com /etc/nginx/sites-enabled/

然后检查配置文件是否已正确加载:

sudo nginx -t

如果一切正常,重新加载Nginx以应用更改:

sudo systemctl reload nginx
配置防火墙

确保服务器上的防火墙允许HTTP(端口80)和HTTPS(端口443)流量,对于 ufw 防火墙,可以使用以下命令开放这些端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
测试配置

在本地或远程访问测试域名,确保它们能够正确地映射到正确的Nginx配置文件上,访问 http://example.comhttp://blog.example.com 应显示相应的网页内容。

通过上述步骤,你就可以在Linux服务器上成功使用Nginx实现单IP地址下的多虚拟主机配置,这样不仅能提高服务器的灵活性,还能有效地管理多个独立网站或服务。

image
超值优选 限时抢购 轻量云服务器 1核1G 15元/起

热卖推荐 上云必备低价长效云服务器99元/1年,OSS 低至 118.99 元/1年,官方优选推荐

热卖推荐 香港、美国、韩国、日本、限时优惠 立刻购买

优质托管支持

高质量、安全的网络托管方面拥有十多年的经验我们是您在线旅程的战略合作伙伴。

联系我们 企业微信