postgresql - PGAdmin 的自定义位置重定向到 'localhost/' nginx
问题描述
我有一个 nginx 服务器,在“localhost/api”上有一个 nodejs API,在“localhost/”上有一个 PGAdmin4。在这种情况下,一切正常,但是一旦我在“localhost/pgadmin4”上的 nginx.conf 中配置 PGAdmin4 的位置,当我单击 PGAdmin4 界面上的登录按钮时,我就会被重定向到“localhost/”因此不要访问 PGAdmin。
我已经尝试了在这里找到的几种解决方案,但没有任何效果..
这是我的 nginx.conf 文件(proxy_pass 中的 pgadmin 在我的 docker-compose.yml 中定义):
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events { worker_connections 1024; }
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /dev/null;
upstream app {
least_conn;
server app:3000 weight=10 max_fails=3 fail_timeout=30s;
}
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
location /api/ {
proxy_pass http://app;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /pgadmin {
proxy_pass http://pgadmin;
proxy_http_version 1.1;
proxy_set_header X-Script-Name /pgadmin;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
}
解决方案
使用 apache24 作为反向代理,pgadmin4 与 uWSGI 独立运行,我成功地X-Script-Name
在反向代理中设置了标头。
或者,它也可以正常工作,不设置X-Script-Name
反向代理中的标头,不重写反向代理中的 URL 路径组件,而是将以下配置添加到 uWSGI:
route-run = addvar:SCRIPT_NAME=/pgadmin
route = ^/pgadmin(.*) rewrite:$1
这将从中删除重定位 URL 路径组件PATH_INFO
并将其放入SCRIPT_NAME
,并且与使用的网络服务器无关。
我不熟悉 nginx,但是将您引用的配置与https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html#http-via-nginx上的文档进行比较我可能会假设您的 proxy_path 值是错误的,并且应该包含类似http://localhost:5050/
.
推荐阅读
- javascript - 如何从 react-snap 预渲染中排除对讲脚本
- css - 如何设置背景图片?
- python - 在许多标签中多次更改图像的最佳方法是什么?
- ruby - ruby - 计算天数的差异
- reactjs - 内部回调函数 - 始终显示初始状态
- azure - 无法在 powershell core 6.2.0 中安装 nuget 包提供程序
- awk - AWK - 了解使用 FILENAME 和 OFS 获得的不同输出
- javascript - 在 React 中滚动到 DOM 元素
- c - 函数头中struct *和struct **的区别
- powerbi - 如何在 PowerBI 中子查询过滤器