nginx重定向与转发
nginx重定向与转发

nginx重定向与转发

某些情况下需要用到url的重定向或者转发,这时候直接配置nginx会比修改站点文件更方便,以下是重定向与转发的区别:

重定向和转发的区别就是请求服务器几次。如果请求服务器地址没有变,说明这是一次请求,请求在自己的服务器里面流转,这就是转发,这是服务器行为。如果请求服务器地址变了,说明这是请求了二次,第二次请求由客户端浏览器负责,在多台服务器之间流转,这就是客户端行为。

重定向:

  1. 重定向的速度比较慢,需要跨越服务器
  2. 重定向是两次不同的请求
  3. 重定向是执行重定向之后的代码
  4. 地址栏的地址是会发生变化的
  5. 重定向不包含项目的根目录
  6. 重定向是会就是请求域中的数据
# 重定向:xyglxt路径的请求会返回301重定向响应,告知客户端新地址
    location /xyglxt {
        # 返回301重定向响应,告知客户端请求的新地址
        return 301 https://starry0214.one/index.php/2024/06/07/%e6%a0%a1%e5%8f%8b%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1%e8%af%a6%e6%83%85/;
    }

转发:

  1. 转发速度快,不需要跨越服务器,在自己项目的页面之间跳转
  2. 转发是同一次请求
  3. 转发是不会执行转发后代码
  4. 转发地址栏是没有变化的
  5. 转发是包含项目的根目录的
  6. 转发请求域中的数据是不会丢失的
# 内容转发:xyglxt路径的请求会转发到目标地址,并返回目标内容给客户端
    location /xyglxt {
        # 设置请求头Host字段,确保代理请求的目标地址正确
        proxy_set_header Host $host; 

        # 设置客户端的真实IP地址
        proxy_set_header X-Real-IP $remote_addr;

        # 设置X-Forwarded-For头字段,用于记录代理链条中的客户端IP
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 设置X-Forwarded-Proto头字段,记录客户端请求的协议(HTTP或HTTPS)
        proxy_set_header X-Forwarded-Proto $scheme;

        # 将请求转发到目标地址,并返回响应内容
        proxy_pass https://starry0214.one/index.php/2024/06/07/%e6%a0%a1%e5%8f%8b%e7%ae%a1%e7%90%86%e7%b3%bb%e7%bb%9f%e8%ae%be%e8%ae%a1%e8%af%a6%e6%83%85/;
    }
starry0214

订阅评论
提醒
guest

0 评论
最新
最旧 最多投票
内联反馈
查看所有评论