Nginx作为Ajenti的反向代理

时间:2014-06-30 05:58:05

标签: nginx ubuntu-12.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中处理此问题的建议方法是什么?

2 个答案:

答案 0 :(得分:4)

编辑:添加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
    }
}

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

答案 1 :(得分:0)

这是我将如何做到的:

使用location ~ /ajenti.*来匹配Ajenti的资源网址。

修改:对其进行了测试,并确实有效。