Điểm:0

Apache2 phía sau NGINX: MOD_REWRITE chỉ hoạt động khi không có HTTPS

lá cờ mx

Trong nhiều ngày, tôi không thể giải quyết được vấn đề sau:

Chúng tôi có một ứng dụng (Faveo) có hai yêu cầu để đi qua trình hướng dẫn thiết lập:

HTTPS & MOD_REWRITE.

Faveo đang chạy trên Apache2 với ReverseProxy phía trước nó trong DMZ của chúng tôi.


Nếu tôi chạy ReverseProxy của chúng tôi với một cách đơn giản

địa điểm / {
          proxy_pass http://XXX.XXX.XXX.XXX;
}

mod_rewrite (được bật Apache-Side, phục vụ Faveo) dường như công việc và Faveo-Wizard chuyển sang màu xanh lục.

Tuy nhiên - Ứng dụng là không phải phục vụ với HTTPS.

Vì vậy, tôi không thể nhấp vào "Tiếp tục": Nhấp vào đây! (http; mod_rewrite)


Nếu bây giờ tôi lặp qua các đối số sau:

địa điểm / {
          proxy_pass http://xxx.xxx.xxx.xxx;

          proxy_set_header X-Real-IP $remote_addr;
          máy chủ proxy_set_header $http_host;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Faveo bây giờ được gọi là với HTTPS, nhưng mod_rewrite không hoạt động thời gian này: Nhấp vào đây! (HTTPS; không có mod_rewrite) Điều này cũng không cho phép nhấp vào "tiếp tục".

Bạn có bất cứ ý tưởng? Làm cách nào tôi có thể chuyển HTTPS xuống Apache mà vẫn có thể sử dụng mod_rewrite ở phía Apache?

Cấu hình NGINX:

người phục vụ {
        nghe 80;
        server_name helpdesk.someurl.de;
        trả về 301 https://$server_name$request_uri;
}

người phục vụ {
        nghe 443 ssl http2;
        ssl_protocols TLSv1.2;
        server_name helpdesk.someurl.de;

        # Kích hoạt SSL
        ssl trên;
        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 5 phút;

        # Đặt cài đặt proxy toàn cầu
        proxy_read_timeout 360;

       địa điểm / {
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header Máy chủ $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>

Nếu bây giờ tôi xóa

proxy_set_header Máy chủ $http_host;

Từ NGINX-Config, HTTPS bị tắt nhưng mod_rewrite vẫn hoạt động.

Nếu nó được bật, tôi sẽ nhận được HTTPS, nhưng không có mod_rewrite.

vidarlo avatar
lá cờ ar
Bạn cũng phải định cấu hình Nginx để chấp nhận các kết nối TLS.
HeadKnockr avatar
lá cờ mx
@vidarlo Ý bạn là thêm `ssl_protocols TLSv1.2 TLSv1.3;` vào NGINX-config?
djdomi avatar
lá cờ za
vui lòng chia sẻ cấu hình đầy đủ của apache và nginx nếu không câu hỏi này hiện không có trong chủ đề
HeadKnockr avatar
lá cờ mx
@djdomi Xong! :)

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.