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

Nginx虚拟主机重定向(从零开始教你配置域名跳转)

在搭建网站时,我们经常会遇到需要将一个域名跳转到另一个域名的情况,比如把 www.example.com 自动跳转到 example.com,或者将 HTTP 请求跳转到 HTTPS。这时,Nginx 虚拟主机重定向就派上用场了。

本文将手把手教你如何在 Nginx 中配置虚拟主机实现重定向,即使你是完全的新手,也能轻松上手!

什么是 Nginx 虚拟主机?

Nginx 的“虚拟主机”(也叫 server block)允许你在同一台服务器上托管多个网站。每个虚拟主机可以监听不同的域名或端口,并独立处理请求。通过配置虚拟主机,我们可以灵活地控制不同域名的行为,包括重定向。

常见的重定向场景

  • www 域名跳转到非 www 域名(或反之)
  • HTTP 自动跳转到 HTTPS(提升安全性)
  • 旧域名跳转到新域名(网站迁移)
  • 特定路径跳转到其他页面(如 /old-page → /new-page)
Nginx虚拟主机重定向(从零开始教你配置域名跳转) Nginx虚拟主机  Nginx重定向 域名重定向 Web服务器配置 第1张

准备工作

确保你已经:

  • 安装了 Nginx(可通过 nginx -v 验证)
  • 拥有服务器的 root 或 sudo 权限
  • 已将域名解析到你的服务器 IP

步骤一:编辑 Nginx 配置文件

通常,站点配置文件位于 /etc/nginx/sites-available/ 目录下。你可以创建一个新配置文件,例如 example.com

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

步骤二:配置重定向规则

下面是一个典型的 HTTP 到 HTTPS + www 到非 www 的重定向配置示例:

# 将 http://example.com 和 http://www.example.com 重定向到 https://example.comserver {    listen 80;    server_name example.com www.example.com;    return 301 https://example.com$request_uri;}# 处理 www 到非 www 的 HTTPS 重定向server {    listen 443 ssl;    server_name www.example.com;    ssl_certificate /path/to/fullchain.pem;    ssl_certificate_key /path/to/privkey.pem;    return 301 https://example.com$request_uri;}# 主站配置server {    listen 443 ssl;    server_name example.com;    ssl_certificate /path/to/fullchain.pem;    ssl_certificate_key /path/to/privkey.pem;    root /var/www/example.com;    index index.html;    location / {        try_files $uri $uri/ =404;    }}

说明:

  • return 301 表示永久重定向(SEO 友好)
  • $request_uri 保留原始请求的路径和参数
  • SSL 证书路径需替换为你自己的实际路径

步骤三:启用配置并测试

创建软链接以启用站点:

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

测试 Nginx 配置是否正确:

sudo nginx -t

如果显示 “syntax is ok”,则重新加载 Nginx:

sudo systemctl reload nginx

验证重定向是否生效

打开浏览器,访问 http://www.example.com,应该会自动跳转到 https://example.com。你也可以使用命令行工具测试:

curl -I http://www.example.com

如果看到响应头中包含 Location: https://example.com/ 和状态码 301,说明配置成功!

小贴士

  • 使用 301 重定向有利于 SEO,告诉搜索引擎这是永久变更
  • 避免重定向循环(比如 A → B → A)
  • 修改配置后务必测试,防止网站无法访问

通过以上步骤,你已经掌握了 Nginx 虚拟主机重定向的核心技巧。无论是做 域名重定向、HTTPS 强制跳转,还是网站迁移,都能轻松应对。希望这篇教程能帮助你在 Web服务器配置 的道路上更进一步!

如果你还有疑问,欢迎在评论区留言交流!