NGINX 背后的 Apache2:MOD_REWRITE 仅在没有 HTTPS 的情况下有效

NGINX 背后的 Apache2:MOD_REWRITE 仅在没有 HTTPS 的情况下有效

几天来我一直无法理解以下问题:

我们有一个应用程序(Faveo),它有两个要求按照安装向导进行操作:

HTTPS 和 MOD_REWRITE。

Faveo 在我们的 DMZ 中的 Apache2 上运行,并且在其前面有一个 ReverseProxy。


如果我使用简单的方法运行 ReverseProxy

location / {
          proxy_pass http://XXX.XXX.XXX.XXX;
}

mod_rewrite(启用了 Apache-Side,为 Faveo 提供服务)似乎工作Faveo-Wizard 变为绿色。

然而 -该应用程序是不是HTTPS

因此我无法点击“继续”: 点击我!(http; mod_rewrite)


如果我现在循环遍历以下参数:

location / {
          proxy_pass http://xxx.xxx.xxx.xxx;

          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header host $http_host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Faveo 现在被称为使用 HTTPS, 但mod_rewrite 不起作用这次: 点击我!(HTTPS;无 mod_rewrite) 这也不允许点击“继续”。

您有什么想法吗?我怎样才能将 HTTPS 传递给 Apache,同时仍然能够在 Apache 端使用 mod_rewrite?

NGINX配置:

server {
        listen       80;
        server_name helpdesk.someurl.de;
        return 301 https://$server_name$request_uri;
}

server {
        listen       443 ssl http2;
        ssl_protocols TLSv1.2;
        server_name helpdesk.someurl.de;

        # Enable SSL
        ssl                     on;
        ssl_certificate      /etc/letsencrypt/live/someurl.de/fullchain.pem;
        ssl_certificate_key  /etc/letsencrypt/live/someurl.de/privkey.pem;

        client_max_body_size    50M;
        ssl_session_timeout     5m;

        # Set global proxy settings
        proxy_read_timeout      360;

       location / {
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Host $http_host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://XXX.XXX.XXX.XXX/;
        }

        error_log /var/log/nginx/helpdesk-ssl-error.log;
        access_log /var/log/nginx/helpdesk-ssl-access.log;
}

Apache2:

<VirtualHost *:80>
    ServerName helpdesk.someurl.de

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/faveo/public

    <Directory /var/www/faveo/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

如果我现在删除

proxy_set_header Host $http_host;

从 NGINX-Config 来看,HTTPS 被禁用,但 mod_rewrite 可以工作。

如果启用它,我会获得 HTTPS 服务,但没有 mod_rewrite。

相关内容