nginx - NGINX Reverseproxy 问题:在 ReverseProxy 后面发布 Web 应用
问题描述
我有一个“小”NGinx 问题。
我有多个 Web 应用程序,我将通过 NGINX Reverseproxy 发布它。
在 1 个 URL 下,我将发布多个 Webapp:
所以:
https://Reverseproxy/webappA
https://Reverseproxy/webappB
https://Reverseproxy/webappC
这项工作是这样的:
https://Reverseproxy/webappA --> redirect to http://www.webappaWebserver.com/webappA
--> 当然这很好用;-)。
但是对于我的 Webapp B,我遇到了挑战。我必须找到一种方法来实现以下场景:
https://Reverseproxy/webappB --> redirect to http://www.webappBWebserver.com/
--> 这不起作用,因为子站点(斜线之后)不存在。但我无法在此 Web 服务器上进行 URL Webserverchanges。
那么我怎样才能让这个星座运行呢?
这是我的 Reverseproxy 配置:
location /appb {
proxy_pass http://10.254.1.41:80;
include /etc/nginx/conf.d/proxy.conf;
}
代理.conf:
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
### Proxy headers
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Forwarded $proxy_add_forwarded;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
### Proxy timeouts
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
~
非常感谢您的帮助。
解决方案
将 page_name 替换为 webappA、webappB 或 webappC 。
将 example.com 替换为您的子域。
location /page_name/ { rewrite ^([^.]*[^/])$ $1/ permanent; sub_filter_once off; sub_filter_types *; sub_filter /_elderjs /page_name/_elderjs; proxy_ssl_verify off; proxy_set_header Host "example.com"; proxy_set_header X-Forwarded-Host ""; proxy_set_header X-Forwarded-For ""; proxy_set_header Accept-Encoding ""; proxy_set_header Cookie ""; proxy_ssl_server_name on; proxy_pass https://example.com/; proxy_redirect ~^(http://[^/]+)(/.*)$ https://$http_host$2; }
它对我有用;)。希望这个答案能解决你的问题。
推荐阅读
- google-apps-script - 希望将 Excel VBA 宏转换为 Google Sheet 应用程序脚本,该脚本比较日期和自动填充/删除列
- rpc - 我正在尝试从 rpc 服务器返回数组(函数返回本地变量的地址 -wreturn-local-addr)
- regex - Golang - 使用多个复杂的正则表达式模式扫描字符串
- c - 2/12 的简单除法与双重导致的错误
- scala - 带有 for 循环的 Spark Dataframe:优化技术
- google-cloud-platform - 在谷歌云上使用托管 AD 创建 gMSA
- javascript - 删除特定项目单击图标 React js
- qt - 在 QtQuick 中显示一个没有任何顶层窗口的弹出窗口
- curl - curl 无法通过授权下载
- android - 如何从android中的外部存储上传文件?