NGINX 뒤의 Apache2: MOD_REWRITE는 HTTPS 없이만 작동합니다.

NGINX 뒤의 Apache2: MOD_REWRITE는 HTTPS 없이만 작동합니다.

며칠 동안 나는 다음 문제에 대해 머리를 숙일 수 없습니다.

우리는 다음과 같은 애플리케이션(Faveo)을 가지고 있습니다.두 가지 요구 사항설정 마법사를 진행하려면 다음 단계를 따르세요.

HTTPS 및 MOD_REWRITE.

Faveo는 DMZ의 앞에 ReverseProxy가 있는 Apache2에서 실행되고 있습니다.


간단한 방법으로 ReverseProxy를 실행하면

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

mod_rewrite(Faveo를 제공하는 Apache-Side가 활성화되어 있음)일하다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;
}

아파치2:

<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는 제공되지 않습니다.

관련 정보