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

Nginx多域名配置(手把手教你实现一个服务器托管多个网站)

在现代Web开发和运维中,经常需要在一个服务器上托管多个网站。这时,Nginx多域名配置就显得尤为重要。本文将从零开始,详细讲解如何通过Nginx实现一个服务器同时支持多个域名访问不同网站内容,即使是小白也能轻松上手!

什么是Nginx多域名配置?

Nginx 是一款高性能的 Web 服务器和反向代理服务器。通过“虚拟主机”(Virtual Host)技术,Nginx 可以根据用户访问的域名,将请求分发到不同的网站目录或后端服务。这种机制就是我们常说的多域名配置

Nginx多域名配置(手把手教你实现一个服务器托管多个网站) Nginx多域名配置 虚拟主机配置 Nginx服务器设置 网站多域名部署 第1张

准备工作

  • 一台安装了 Nginx 的 Linux 服务器(如 Ubuntu、CentOS)
  • 至少两个已备案并解析到该服务器 IP 的域名(例如:example1.com 和 example2.com)
  • 基本的命令行操作能力

步骤一:创建网站目录

首先,为每个域名创建独立的网站根目录:

# 创建目录sudo mkdir -p /var/www/example1.com/htmlsudo mkdir -p /var/www/example2.com/html# 设置权限sudo chown -R $USER:$USER /var/www/example1.com/htmlsudo chown -R $USER:$USER /var/www/example2.com/html  

然后,在每个目录下创建一个简单的 index.html 文件用于测试:

echo "<h2>欢迎访问 example1.com</h2>" > /var/www/example1.com/html/index.htmlecho "<h2>欢迎访问 example2.com</h2>" > /var/www/example2.com/html/index.html  

步骤二:配置Nginx虚拟主机

进入 Nginx 配置目录(通常为 /etc/nginx/sites-available/),为每个域名创建独立的配置文件:

1. 创建 example1.com 的配置文件:

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

写入以下内容:

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

2. 同样方式创建 example2.com 的配置文件:

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

内容类似,只需修改 rootserver_name 字段:

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

步骤三:启用站点配置

在 Debian/Ubuntu 系统中,需要将配置文件链接到 sites-enabled 目录:

sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/  

如果你使用的是 CentOS 或其他不区分 sites-available 的系统,可以直接在 /etc/nginx/conf.d/ 下创建 .conf 文件,Nginx 会自动加载。

步骤四:测试并重载Nginx

在重启 Nginx 前,务必检查配置语法是否正确:

sudo nginx -t  

如果显示 successful,说明配置无误。接着重载 Nginx 使配置生效:

sudo systemctl reload nginx  

验证结果

现在,在浏览器中分别访问 http://example1.comhttp://example2.com,你应该能看到各自对应的欢迎页面。这说明你的 Nginx服务器设置 已成功实现多域名托管!

常见问题与注意事项

  • 确保域名已正确解析到服务器 IP 地址(可通过 ping 命令测试)
  • 防火墙需开放 80 端口(HTTP)或 443 端口(HTTPS)
  • 若需 HTTPS,可使用 Let's Encrypt 免费证书配合 Certbot 自动配置
  • 配置文件中的 server_name 支持通配符(如 *.example.com

总结

通过本文,你已经掌握了 网站多域名部署 的核心方法。Nginx 的虚拟主机功能强大且灵活,不仅能支持多域名,还能结合反向代理、负载均衡等高级功能。希望这篇教程能帮助你在实际项目中高效管理多个网站!

如果你觉得有用,欢迎收藏本教程,并分享给更多需要的朋友。祝你运维顺利!