加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

pgadmin4无法在nginx后面的特定位置工作

发布时间:2020-12-13 21:00:00 所属栏目:Nginx 来源:网络整理
导读:我遇到了一些麻烦:pgadmin在location /中的nginx后面工作得很好,但是在后面/ pgadmin的地方不能工作 工作出色: location / { proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_se

我遇到了一些麻烦:pgadmin在location /中的nginx后面工作得很好,但是在后面/ pgadmin的地方不能工作
工作出色:

location / {
         proxy_http_version 1.1;
         proxy_set_header X-Real-IP  $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_set_header Host $host;

         proxy_pass         http://127.0.0.1:5050;
}

无效的工作:

location /pgadmin {
         proxy_http_version 1.1;
         proxy_set_header X-Real-IP  $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_set_header Host $host;

         proxy_pass         http://127.0.0.1:5050;
}

可能我需要一些特定的重写吗?

最佳答案
对于版本pgAdmin 4 v3.0,在实际解决该问题之前,这是基于this的快速命令行黑客.

cat > quickfix.txt <<THE_END
class ReverseProxied(object):
    def __init__(self,app):
        self.app = app
    def __call__(self,environ,start_response):
        script_name = environ.get("HTTP_X_SCRIPT_NAME","")
        if script_name:
            environ["SCRIPT_NAME"] = script_name
            path_info = environ["PATH_INFO"]
            if path_info.startswith(script_name):
                environ["PATH_INFO"] = path_info[len(script_name):]
        scheme = environ.get("HTTP_X_SCHEME","")
        if scheme:
            environ["wsgi.url_scheme"] = scheme
        return self.app(environ,start_response)
app.wsgi_app = ReverseProxied(app.wsgi_app)

THE_END

sudo sed -i '/app = create_app()/r quickfix.txt' /usr/local/lib/python3.5/dist-packages/pgadmin4/pgAdmin4.py
rm quickfix.txt

上面的命令在app = create_app()行之后,将一段代码插入文件/usr/local/lib/python3.5/dist-packages/pgadmin4/pgAdmin4.py中.

另外,请确保系统上pgAdmin4.py的路径正确.您可能需要调整上面的代码段.

然后,如下配置nginx:

location /pgadmin-web/ {
        proxy_pass http://127.0.0.1:5050/;
        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-Proto       $scheme;
        proxy_set_header    X-Script-Name           /pgadmin-web;
}

作为参考,还可以在GitHub上查看pgAdmin4.py.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读