【问题标题】:Nginx as reverse proxy for AjentiNginx 作为 Ajenti 的反向代理
【发布时间】:2014-06-30 05:58:04
【问题描述】:

我已经按照 Ajenti 设置了一个服务器块 -> http://support.ajenti.org/topic/349870-ajenti-behind-nginx/

location /ajenti {
    rewrite (/ajenti)$ / break;
    rewrite /ajenti/(.*) /$1 break;

    proxy_pass              http://127.0.0.1:8000;
    proxy_redirect /        /ajenti/;
    proxy_set_header        Host             $host;
    proxy_set_header        X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_http_version      1.1;
    proxy_set_header        Upgrade $http_upgrade;
    proxy_set_header        Connection $http_connection;
}

这让我登录,但在我登录后 Ajenti 重定向到“/ajenti:auth”而不是“/ajenti/ajenti:auth”。

例如:浏览器 -> HTTPS -> Nginx -> HTTP -> Ajenti

“ajenti:static”资源似乎也是一个问题。

见:http://support.ajenti.org/topic/88086-support-ajenti-behind-a-reverse-proxy/

Nginx 中推荐的处理方法是什么?

【问题讨论】:

    标签: nginx ubuntu-12.04


    【解决方案1】:

    编辑:添加 proxy_set_header Origin http://$host; 为我解决了这个问题。

    升级到最新版本的 ajenti 后,我也遇到了这个问题。错误 403 无效的来源。这是我的设置。

    server {
        listen 443 ssl;
        server_name ajenti.mymagicalwebsite.com;
        ssl on;
    
        if ($scheme = http) {
            return 301 https://$server_name$request_uri;
        }
    
        location / {
            proxy_pass  http://localhost:8000;
            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_http_version 1.1;
            proxy_set_header        Upgrade         $http_upgrade;
            proxy_set_header        Connection      "upgrade";
            proxy_read_timeout      36000s;  ## Timeout after 10 hours
        }
    }
    

    有趣的是,这一切都在一个版本之前使用完全相同的设置工作。

    【讨论】:

    • 添加这一行就可以了,我猜是因为我正在做从 HTTPS 到 HTTP 的代理。 proxy_set_header Origin http://$host;
    • - 根据您上面的评论 (Hardex),但 http -> "proxy_set_header Origin http://$host;"谢谢:)
    【解决方案2】:

    我会这样做:

    改用location ~ /ajenti.* 来匹配Ajenti 的资源URL。

    编辑:经过测试,它可以工作。

    【讨论】:

    • 嗯,这对我不起作用。我将 .* 添加到该位置的末尾并得到 404。刚刚注意到(在浏览器控制台中)POST(在我登录后)返回“403 无效来源”?
    • 您是否指定了正则表达式位置匹配?例如。 location ~ /ajenti.*
    • 我应该把它放在答案中,对不起
    猜你喜欢
    • 2021-06-17
    • 1970-01-01
    • 2011-10-20
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    相关资源
    最近更新 更多