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;
    }
}

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

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";

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

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 $http host;
proxy set header X-Forwarded-Port $server port;

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

相关文章
|
24天前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
58 7
|
20天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
25天前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
12天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
33 3
|
20天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
37 4
|
20天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
44 3
|
20天前
|
安全 应用服务中间件 网络安全
配置Nginx反向代理实现SSL加密访问的步骤是什么?
我们可以成功地配置 Nginx 反向代理实现 SSL 加密访问,为用户提供更安全、可靠的网络服务。同时,在实际应用中,还需要根据具体情况进行进一步的优化和调整,以满足不同的需求。SSL 加密是网络安全的重要保障,合理配置和维护是确保系统安全稳定运行的关键。
73 3
|
20天前
|
缓存 负载均衡 安全
Nginx的反向代理具体是如何实现的?
Nginx的反向代理具体是如何实现的?
|
22天前
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
140 1
|
7月前
|
负载均衡 应用服务中间件 nginx
nginx-tomcat反向代理以及负载均衡测试
nginx-tomcat反向代理以及负载均衡测试