温馨提示×

nginx在debian如何做重定向

小樊
42
2026-10-09 11:28:19
栏目: 智能运维

在 Debian 上,nginx 做“重定向”通常分几种常见场景。下面按使用方式和常见场景给你说明(都基于 Debian 系,如 Debian 11/12)。


一、最基础:在 nginx 配置里做重定向

nginx 重定向主要用:

  • return 301(推荐,简单高效)
  • rewrite(更灵活,但复杂)

1️⃣ 域名重定向(A → B)

server {
    listen 80;
    server_name old.example.com;

    return 301 https://new.example.com$request_uri;
}

✅ 访问 old.example.com/abc
➡ 跳转到 new.example.com/abc


2️⃣ HTTP → HTTPS 重定向(最常见)

server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://$host$request_uri;
}

3️⃣ 带 www → 不带 www(或反过来)

不带 www → 带 www

server {
    listen 80;
    server_name example.com;
    return 301 https://www.example.com$request_uri;
}

带 www → 不带 www

server {
    listen 80;
    server_name www.example.com;
    return 301 https://example.com$request_uri;
}

4️⃣ 使用 rewrite(不推荐优先使用)

server {
    listen 80;
    server_name example.com;

    rewrite ^/(.*)$ https://new.example.com/$1 permanent;
}

permanent = 301
redirect = 302


二、Debian 上配置文件放哪?

Debian 的 nginx 配置结构:

/etc/nginx/
├── nginx.conf
├── sites-available/
├── sites-enabled/

推荐做法(Debian 风格)

  1. 新建配置文件
sudo nano /etc/nginx/sites-available/redirect.conf
  1. 写入上面的 server {} 配置

  2. 启用

sudo ln -s /etc/nginx/sites-available/redirect.conf /etc/nginx/sites-enabled/
  1. 测试并重启
sudo nginx -t
sudo systemctl reload nginx

三、HTTPS 的重定向(含证书)

如果你用的是 Let’s Encrypt:

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        root /var/www/html;
        index index.html;
    }
}

四、常见坑(Debian 用户常遇到)

❌ 重定向循环

  • 同时写了 HTTP 和 HTTPS 的 return 301
  • 反向代理后端又跳一次

❌ 配置没生效

nginx -t
systemctl reload nginx

不是 restart 也行,但 reload 更安全


五、你可以告诉我具体场景

如果你能说清楚:

  • 是 域名跳转?
  • HTTP → HTTPS?
  • 路径跳转(/a → /b)?
  • 是否使用 Docker / Debian + nginx?

我可以直接给你可复制的 Debian 配置。

0 踩