nginx 反向代理重定向使用代理的端口号,而不是主机的端口号
2017-9-11 18:40:51
收藏:0
阅读:78
评论:1
我正在配置一个 Web/App/DB 的堆栈,并且 Nginx 代理配置并没有按照我想的那样工作。
所以这里是堆栈的一个例子... 应用程序的 URL 是: https://testapp.com
这里是 Nginx 配置:
server {
listen 8886;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
#ELB
if ($http_user_agent = 'ELB-HealthChecker/2.0') {
return 200 working;
}
#HTTP to HTTPS
if ($http_x_forwarded_proto != 'https') {
return 301 https://$host$request_uri;
}
location / {
set $proxy_upstream_name "testapp.com";
port_in_redirect off;
proxy_pass http://internal-alb.amazonaws.com:8083/;
proxy_redirect off;
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-Host $server_name;
proxy_set_header Access-Control-Allow-Origin $http_origin;}
该应用程序被代理到了一个内部的 AWS ALB 上,并将其转发到一个单一的(此时)应用程序服务器。
我可以让网站服务。 然而,应用程序在登录时创建了一个重定向,并且我收到了以下响应。
Request URL:https://testapp.com/login
Request Method:POST
Status Code:302
Remote Address:34.192.444.29:443
Referrer Policy:no-referrer-when-downgrade
Response Headers
content-language:en-US
content-length:0
date:Mon, 11 Sep 2017 18:35:34 GMT
location:http://testapp.com:8083/testCode
server:openresty/1.11.2.5
status:302
重定向失败是因为它是在 443 上服务的,而不是 8083。
由于某些原因,应用程序或代理没有在进行反向代理时更新端口,因此重定向具有代理的端口,而不是实际的应用程序端口 443。
我需要在 Nginx 配置中做什么才能正确地重定向呢?
谢谢。 myles.
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

正常情况下,nginx 会将上游地址重写为页面所提供的地址。看起来,您的应用程序没有使用上游地址(http://internal-alb.amazonaws.com:8083/),而是使用了两种地址的混合(http://testapp.com:8083)。您可以更改应用程序行为,或者在 nginx 级别上修复它,可以使用 proxy_redirect 指令。
我相信修复此问题的指令是
proxy_redirect http://testapp.com:8083/ https://testapp.com/;