nginx配置反向代理404问题

简介: 【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。

使用Nginx进行反向代理,代码如下:

server {
   
    listen       85;
    server_name  _;
    charset utf-8;

    location /thirdServiceApi/ {
   
       proxy_pass https://www.test.net/thirdServiceApi/;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header REMOTE-HOST $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
AI 代码解读

根据配置的逻辑,当请求地址如下时

http://192.168.1.150:85/thirdServiceApi/api/third/getToken

nginx会将接口代理到如下地址:

http://www.test.net/thirdServiceApi/api/third/getToken

启动服务后测试,看到日志里显示404
在这里插入图片描述

问题解决

查找问题,定位到了这一行

proxy_set_header Host $http_host;

通过注释到这一行可以解决问题;
注释后使用的是默认值:

proxy_set_header Host $proxy_host;
请求头设置的为代理后的域名。

解决跨域问题

添加如下几行代码即可:

    add_header Access-Control-Allow-Origin * always;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Methods "GET, POST, PUT, OPTIONS";
AI 代码解读

最终代码如下:
在这里插入图片描述

nginx打印请求信息配置:

在这里插入图片描述
打印客户端上传上来的header头部信息,同时头部信息是自定义的。可以通过http_xx 的方式实现header输出。

Authorization,写成\$http_Authorization;
sec-ch-ua这种带横线的字段,写成\$http_sec_ch_ua,nginx会自动做处理的。

302问题

使用之前的nginx配置放到内网机器测试;通过公网访问内网服务提示了一个302 found:
在这里插入图片描述
在这里插入图片描述

公网端口是28081 ,内网端口8081
访问公网http://ip:28081 nginx返回了内网的http://ip:8081地址后重定向了;

通过配置以下代码,进行接口跟随配置可以解决

proxy set header Host httphost;proxysetheaderXForwardedPortserver port;

全部配置如下:
在这里插入图片描述

目录
打赏
0
1
1
0
1634
分享
相关文章
Nginx进程配置指令详解
Nginx进程配置指令主要包括:`worker_processes`设置工作进程数;`worker_cpu_affinity`绑定CPU核心;`worker_rlimit_nofile`设置最大文件描述符数量;`worker_priority`设置进程优先级;`worker_connections`设置最大连接数;`daemon`控制守护进程模式;`master_process`启用主进程模式;`pid`设置PID文件路径;`user`指定用户和组;`error_log`配置错误日志。这些指令在`nginx.conf`中配置,用于优化和控制Nginx的运行行为。
52 10
Nginx七层(应用层)反向代理:HTTP反向代理proxy_pass篇
通过使用Nginx的反向代理功能,可以有效地提高Web应用的性能、安全性和可扩展性。配置过程中需要注意不同场景下的具体需求,如负载均衡、SSL终止和缓存策略等。正确配置和优化Nginx反向代理可以显著提升系统的整体表现。
455 20
nginx配置证书和私钥进行SSL通信验证
nginx配置证书和私钥进行SSL通信验证
98 4
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
289 61
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
305 60
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
397 60
nginx的正向代理和反向代理以及tomcat
Nginx的正向代理和反向代理功能在不同的场景中具有重要作用,正向代理主要用于客户端访问控制和匿名浏览,而反向代理则用于负载均衡和高可用性服务。Tomcat作为Java Web应用服务器,与Nginx结合使用,可以显著提升Web应用的性能和稳定性。通过合理配置Nginx和Tomcat,可以构建高效、稳定和可扩展的Web服务架构。
237 11
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
163 5
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
263 3