首页 > 系统相关 >Nginx反向代理之proxy_redirect指令【转】

Nginx反向代理之proxy_redirect指令【转】

时间:2024-11-08 17:08:19浏览次数:1  
标签:redirect 146 访问 192.168 代理服务器 Nginx proxy

proxy_redirect

该指令是用来重置头信息中的"Location"和"Refresh"的值。

语法:

proxy_redirect redirect replacement;
proxy_redirect default; 
proxy_redirect off;

默认值:

proxy_redirect default;

编写位置:它可以存储在http、server、location里面

现在客户端向代理服务器发送请求,代理服务器把这个请求转发到服务端

 

 

服务端,这里设置的是146服务器,代理服务器这里设置的是133的电脑

 

 

服务端[192.168.200.146](最终接收前端请求的那个)

server {
 listen  8081;
 server_name localhost;
 if (!-f $request_filename){
 return 302 http://192.168.200.146;
 }
 }

 

代理服务端[192.168.200.133]​​​​​​

 server {
 listen  8081;
 server_name localhost;
 location / {
 proxy_pass http://192.168.200.146:8081/;
 proxy_redirect http://192.168.200.146 
http://192.168.200.133;
 }
 }

 

先在146的服务器(最终接收前端请求的那个)进行相应的配置修改

第一步: 先使用vim ../conf/nginx.conf中

 

 

第二步:在8081端口下,配置location路径

 

第三步:检验语法,重载配置

 

第四步:这时通过192.168.200.146:8081能够看到页面了

 

第五步:找到代理服务器的位置,

 

第六步:在代理服务器的位置,添加server块,映射到146:8081端口的位置

 

访问133的路径,最终显示146的结果,说明他背后访问的是146的资源

 

但是这里却出现了一种情况,如果在访问

192.168.200.133:8081/abc.html,访问/后面,且目录下面没有对应的文件却出现了404 Not Found这样的错误,这时候在想,如果没有静态资源,我还想将页面展示出来

 

先到146服务器的位置(接收服务器最终数据的那台服务器)

来到146服务器的地方,打开配置文件

 

给他添加if判断条件,判断是否存在有该文件,如果没有,return,继续重载到页面,默认跳转到index.html页面,它会自行进行匹配

 

检验语法,重载配置

 

现在把abc访问刷新一次,访问的就是146的页面

 

为什么之前的abc变成了192.168s.200.146了呢?

利用curl -I xxxx可以查看具体的访问页面,访问最终结果爆出了302

 

出现302的原因是因为if访问条件不存在,出现了一个302重定向地址

 

应用常见是客户端只能知道代理服务器的地址,而代理服务器再能将请求转发到服务端

 

同时也存在了一个问题,客户端是不知道最终服务端的IP地址的,想要客户端知道代理服务器的地址,最后要用到proxy_redirect

 

该指令是用来重置头信息中的"Location"和"Refresh"的值,编写在代理服务器上,将客户端的指令发送给最终服务器

使用proxy_redirect的具体配置,打开配置资料,proxy_redirect怎样进行设置,有三种方式,编写的位置在http、server、location三大块当中

第一种方式,proxy_redirect redirect replacement;(redirect是location的值)replacement(是替换的值)

 

具体配置内容

 

检验语法,重载配置

 

再访问abc.html文件的时候,找不到静态资源,同时也根据了上文的配置跳转到133的服务器上了

 

最终跳转到146的映射文件,使用proxy_pass中

 

检验语法,重载配置

 

第一次访问abc.html页面,跳转失败,最终返回的是192.168.200.133页面,这里初步设置是因为缓存影响的,没有跳转

 

打开浏览器设置,将缓存给删除一下

 

缓存删除之后,访问abc.html页面,现在最终映射的内容,访问了146的地方了

 

现在location,已经成功的映射到了133的地址当中了

 

该指令的几组选项

proxy_redirect redirect replacement;​​​​​​​

redirect:目标,Location的值
replacement:要替换的
proxy_redirect default;​​​​​​​

default;
将location块的uri变量作为replacement,
将proxy_pass变量作为redirect进行替换
proxy_redirect off;

关闭proxy_redirect的功能

转自

Nginx反向代理之proxy_redirect指令_nginx redirect-CSDN博客
https://blog.csdn.net/weixin_54048131/article/details/140313772

 

标签:redirect,146,访问,192.168,代理服务器,Nginx,proxy
From: https://www.cnblogs.com/paul8339/p/18535468

相关文章

  • redirect跳转https变为http问题的深入思考【转】
    背景服务部署以及跳转展示如下: 用户https请求通过阿里云负载通过http到指定应用,应用返回跳转路径(状态为302),但跳转路径为http(不为https),所以访问不了2.1跳转伪代码://ModelAndViewmv.setViewName(WebCst.REDIRECT+"/admin/sso/login");122.2浏览器跳转截图结论总结用nginx......
  • 【Linux】为终端命令自定义快件键并弹窗提醒 设置快捷键切换网络代理(Network Proxy)Dis
    【Linux】为终端命令自定义快件键并弹窗提醒设置快捷键切换网络代理(NetworkProxy)Disabled/Manual并弹窗提醒可以自定义快捷键执行终端命令,执行完毕会有弹窗提醒。下面给一个例子,设置快捷键切换网络代理(NetworkProxy)Disabled/Manual并弹窗提醒。适用于Ubuntu系统,为......
  • laravel octane: 配置nginx访问octane(laravel 11)
    一,配置nginx1,在一个nginx的server段中添加如下内容:location/index.php{try_files/not_exists@octane;}location/{try_files$uri$uri/@octane;}location@octane{se......
  • 云服务器Linux部署war、jar包,并在nginx配置域名
    一,打包Jar包        一个Springboot项目默认打包jar包,无需修改配置,点击右侧Maven-Lifecycle-package打包即可注意:需要先检查pom.xml文件,可能此时打包完的jar包会出现        nomainmanifestattribute,intest-0.0.1-SNAPSHOT.jar        xx......
  • nginx二级目录代理minio指定桶
    nginx二级目录代理minio指定桶nginx提供了外网地址,通过二级目录可以代理内网minio的具体桶,将图片展示。配置如下:server{listen8443ssl;server_nameyourdomain.com;ssl_certificate/path/to/your/certificate.crt;ssl_certificate_key/path/to/your......
  • 解决Nginx转发图片不能显示【转】
    背景:最近很多小伙伴使用Nginx代理iServer,将HTTP协议成HTTPS协议,但是可能会出现以下几种情况:(1)图片、js、css等静态资源无法加载 (2)代理后页面跳转回HTTP协议 (3)代理后访问服务管理界面提示“该用户无查询服务访问统计信息权限” 针对上述情况应该如何解决问题呢?其实这些......
  • PHP与Apache、Nginx的性能对比与优化技巧
    PHP与Apache、Nginx的性能对比与优化技巧在现代web开发中,PHP作为一种常见的服务器端脚本语言,通常需要与Web服务器(如Apache和Nginx)配合使用。Apache与Nginx各自的架构特点和性能表现有很大的不同,因此在PHP应用的部署过程中,选择合适的Web服务器并对其进行优化至关重要。Apache与N......
  • 安装Nginx-Web服务
    安装Nginx-Web服务准备k8s集群需要的k8s对象Namespace用来隔离对象资源,name=app-namespace-nginxServiceServiceAPI是Kubernetes的组成部分,它是一种抽象,帮助你将Pod集合在网络上公开出去。每个Service对象定义端点的一个逻辑集合(通常这些端点就是Pod)以及如......
  • nginx 部署2个相同的vue
    起因:最近遇到一个问题,在前端用nginx部署vue,发现如果前端有改动,如果不适用热更新,而是直接复制项目过去,会404因此想到用nginx负载两套相同vue项目,然后一个个复制vue项目就可以了。 废话不多:一在nginx下创建两个vue的路径 二修改nginx的配置文件worker_processes......
  • nginx域名映射
    nginx域名映射域名映射是指将域名与IP地址相对应的过程。在互联网中,每个计算机都有一个唯一的IP地址,用于标识它在网络中的位置。但是,IP地址通常比较难记忆和理解。为了方便用户使用,域名被引入到互联网中,它们可以用来代替IP地址来访问网站。域名映射的过程将域名转换为IP地址,使......