插件窝 干货文章 nginx的配置怎么转发到其他网站

nginx的配置怎么转发到其他网站

server proxy 转发 com 105    来源:    2025-04-27

Nginx 配置网站转发指南

Nginx 可以通过多种方式实现网站转发(代理/重定向),以下是几种常见的方法:

1. HTTP 重定向(301/302)

server {
    listen 80;
    server_name example.com;

    # 永久重定向(301)
    return 301 https://new-site.com$request_uri;

    # 或临时重定向(302)
    # return 302 https://new-site.com$request_uri;
}

2. 反向代理(保留原URL)

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://target-site.com;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 路径转发

server {
    listen 80;
    server_name example.com;

    location /some-path/ {
        proxy_pass http://target-site.com/new-path/;
        # 其他代理设置同上
    }
}

4. 基于条件的转发

server {
    listen 80;
    server_name example.com;

    if ($http_user_agent ~* (mobile|android|iphone)) {
        proxy_pass http://mobile-site.com;
    }

    location / {
        proxy_pass http://desktop-site.com;
    }
}

5. HTTPS 转发

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass https://secure-target-site.com;
        # 其他代理设置
    }
}

注意事项

  1. 重定向(301/302)会改变浏览器地址栏显示的URL
  2. 反向代理不会改变浏览器地址栏,但需要处理可能出现的跨域问题
  3. 对于HTTPS站点,确保SSL证书配置正确
  4. 大量转发时注意性能影响,可适当调整缓冲区设置

需要哪种转发方式取决于您的具体需求,您能提供更详细的使用场景吗?我可以给出更精确的配置建议。