Điểm:1

Đảo ngược proxy và auto_complete với nội dung hỗn hợp

lá cờ sa

Tôi có cấu hình apache với proxy ngược (IP của máy chủ này: 192.168.1.82) để xử lý máy chủ D9 mới của tôi:

192.168.1.82 : 443 được chuyển đến 192.168.1.87 dưới dạng HTTP(80)

<VirtualHost *:443>
    ServerName www.mydomain.be
    ServerAlias mydomain.be
    NameVirtualHost www.mydomain.be

    ProxyPreserveHost On
    ProxyPass / http://192.168.1.87:80/
    ProxyPassReverse / http://192.168.1.87/
    SSLProxyCheckPeerCN Off
    SSLProxyCheckPeerName Off
    SSLProxyVerify none
    ...
</VirtualHost>

Tôi nghĩ nó được gọi là Chấm dứt SSL

192.168.1.82 : 80 được chuyển hướng thành https (443)

<VirtualHost *:80>
    ServerName www.mydomain.be
    Redirect permanent / https://www.mydomain.be/
</VirtualHost>

192.168.1.87 : cài đặt.php

$settings['reverse_proxy'] = TRUE;
$settings['reverse_proxy_addresses'] = [
  '192.168.1.82',
];
$_SERVER['HTTPS'] = 'bật';
$settings['ssl'] = TRUE;

Thật không may, tính năng tự động hoàn thành của trường tham chiếu thực thể yêu cầu điểm cuối không phải https (không an toàn) (Nội dung hỗn hợp):

http://www.mydomain.be/fr/entity_reference_autocomplete/node/default:node/3veI...I?q=t

Tôi có thể làm gì để buộc https... Tôi sẽ chấp nhận cách hack xấu xí nhất nếu nó hoạt động (vâng, tôi ở đây)

kiểm tra 1: ProxyPass https thay vì http [sẽ không hoạt động, xem bên dưới]

Tôi đã điều chỉnh máy chủ ảo 82 như sau;

SSLProxyEngine bật
ProxyPass / https://192.168.1.87/
ProxyPassReverse / https://192.168.1.87/

=> Lần này tôi không gặp vấn đề về nội dung hỗn hợp, nhưng tôi có ERR_TOO_MANY_REDIRECTS một lần nữa cho điểm cuối tự động hoàn thành thực thể này

kiểm tra 2: hack Symfony\Component\HttpFoundation\Request::isSecure()

Đây là chức năng isSecure() mới của tôi:

hàm công khai isSecure(){
  trả về ĐÚNG;
}

Bằng cách này, url tự động hoàn thành sử dụng https, nhưng lần này, tôi nhận được ERR_TOO_MANY_REDIRECTS

NHẬN https://www.mydomain.be/fr/entity_reference_autocomplete/node/default%3Anode/3ve...I?q=T net::ERR_TOO_MANY_REDIRECTS

Tôi thực sự không biết nó có thể đến từ đâu

Kevin avatar
lá cờ in
Bạn đã thử thực thi điều này ở cấp độ htaccess chưa?
Baud avatar
lá cờ sa
ý tưởng tốt: làm thế nào để làm điều đó? Rất cám ơn trước cho tiền boa!!!
Kevin avatar
lá cờ in
https://linuxize.com/post/redirect-http-to-https-in-apache/
Baud avatar
lá cờ sa
@kevin: đây không phải là chuyển hướng https, đây là kết thúc SSL: 82 đang xử lý mã hóa và nó chuyển kết quả (ProxyPass) tới 87 dưới dạng http đơn giản. Thiết lập của tôi trông gần như tốt vì mọi thứ đều hoạt động ngoại trừ nội dung hỗn hợp. Tôi không biết đây là sự cố Drupal hay sự cố Apache
Điểm:1
lá cờ in

Tệp htaccess trong Drupal sẽ có thể buộc tất cả lưu lượng truy cập dưới dạng HTTPS. Có một số nhận xét trong tệp, nhưng một cái gì đó như thế này sẽ hoạt động (được sử dụng trong một số dự án):

  # Buộc tất cả lưu lượng truy cập vào HTTPS, ngoại trừ phiên bản cục bộ
  Viết lại Cond %{HTTPS} tắt
  RewriteCond %{HTTP:X-Forwarded-Proto} !https
  RewriteCond %{HTTP_HOST} !^local\.dev\.domain$ [NC]
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]




  # Sửa đổi RewriteBase nếu bạn đang sử dụng Drupal trong thư mục con hoặc trong một
  # VirtualDocumentRoot và các quy tắc viết lại không hoạt động bình thường.
  # Ví dụ: nếu trang web của bạn ở http://example.com/drupal, hãy bỏ ghi chú và
  # sửa đổi dòng sau:
  # Viết lại cơ sở /drupal
  #
  # Nếu trang web của bạn đang chạy trong VirtualDocumentRoot tại http://example.com/,
  # bỏ ghi chú dòng sau:
  # Viết lạiBase /

Dòng thứ ba là tùy chọn - nó sẽ miễn trừ môi trường nhà phát triển cục bộ khỏi việc viết lại. Nếu bạn sử dụng SSL cục bộ, bạn có thể bỏ qua dòng đó.

Nếu Apache đang phục vụ tất cả các yêu cầu, nó sẽ chuyển qua các quy tắc này, đánh giá chúng và viết lại.

Bạn có thể kiểm tra các quy tắc ở đây: https://htaccess.madewithlove.com/

Đây là bài kiểm tra: https://htaccess.madewithlove.com?share=69ce1303-b1af-4041-aecf-a32f2ecd1bfb

nhập mô tả hình ảnh ở đây

Baud avatar
lá cờ sa
Cảm ơn bạn nhiều, mình thêm 4 dòng vào cuối file drupal mặc định mà không được: https://htaccess.madewithlove.com?share=1cbb4094-19ed-4407-96a3-07c50a159c68
Kevin avatar
lá cờ in
Thứ tự quan trọng trong htaccess. Hãy thử sau dòng nhận xét này `# RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]`
Kevin avatar
lá cờ in
Tôi đã cập nhật câu trả lời của mình để bạn có thể biết các quy tắc nên đi đến đâu. Xem kết quả mới: https://htaccess.madewithlove.com?share=e8e28846-517d-42cf-bc84-d46a736bdd62
Baud avatar
lá cờ sa
Rất tiếc, tôi đã nhận được ERR_TOO_MANY_REDIRECTS.
Baud avatar
lá cờ sa
Điều này là do https được chuyển tiếp tới máy chủ 87 dưới dạng http bởi máy chủ apache 82 của tôi... apache 87 của tôi đang xử lý cổng onlt 80
Baud avatar
lá cờ sa
Tôi đã thêm nhiều chi tiết hơn trong câu hỏi của mình
Điểm:0
lá cờ cn

Hãy thử đặt các tiêu đề X-Forwarded-* trong proxy ngược của Apache:

<Máy chủ ảo *:443>
    Tên máy chủ www.mydomain.be
    ServerAlias ​​mydomain.be
    NameVirtualHost www.mydomain.be

    ProxyPreserveHost Bật
    ProxyPass / http://192.168.1.87:80/
    ProxyPassReverse / http://192.168.1.87/

    RequestHeader đặt X-Forwarded-Proto "https"
    RequestHeader đặt X-Forwarded-Port "443"

Đây là những tiêu đề mà cấu hình proxy ngược trong settings.php cần.

Bạn có thể kiểm tra sự hiện diện của các tiêu đề tại www.mydomain.be/admin/reports/status/php trong phần Thông tin tiêu đề HTTP


Trong một thiết lập như vậy, sử dụng các tiêu đề X-Forward-* là cách tiếp cận chung để cho phép Drupal xây dựng các liên kết tuyệt đối với giao thức chính xác để tránh lỗi nội dung hỗn hợp.

Tuy nhiên, các trang Drupal có thể được xây dựng hoàn chỉnh với các liên kết tương đối và đây là cách Drupal được thiết lập sẵn dùng, bao gồm các trường tự động hoàn thành cốt lõi. Vì vậy, bạn có thể xem lại các tuyến đường tự động hoàn thành trong mã đóng góp/tùy chỉnh và xóa tuyệt đối tùy chọn để làm cho chúng tương đối.


chuyển hướng

Để tránh bình luận thêm, Drupal không chuyển hướng, vượt trội.Việc chuyển hướng không liên quan đến vấn đề, nó chỉ khiến việc gỡ lỗi trở nên khó khăn hơn. Không thể nói từ xa bạn có thể đã triển khai mã nào đang chuyển hướng. Cũng có thể là các chuyển hướng vẫn được lưu trong bộ nhớ đệm, các chuyển hướng vĩnh viễn được lưu vào bộ nhớ cache trong nhiều tuần, ngay cả khi bạn đã xóa mã chuyển hướng.

Baud avatar
lá cờ sa
Nhìn rất tốt!!! Tôi sẽ kiểm tra điều này tối nay ... Tôi không thể chờ đợi
4uk4 avatar
lá cờ cn
Được rồi, khi kiểm tra, hãy kiểm tra đầu ra phpinfo() của trang web Drupal của bạn trước và sau khi thay đổi. Xem bản chỉnh sửa.
Baud avatar
lá cờ sa
Rất tiếc, tính năng này không hoạt động (thông tin: tiêu đề được đặt trong trang trạng thái)=> Tôi nhận được `ERR_TOO_MANY_REDIRECTS` cho tính năng tự động hoàn tất. Ngoài ra còn có `X-Forwarded-For` được đặt thành `192.168.1.1`, không biết đây có phải là cái không
4uk4 avatar
lá cờ cn
Đây là IP máy khách, bạn cũng cần cái này. Apache đặt tiêu đề này theo mặc định. Nhưng điều gì đã xảy ra với hai điều tôi đã gợi ý? Thiếu trước, mất sau? Sau đó xóa mọi bản hack khác, xóa tất cả bộ đệm, cả bộ đệm của trình duyệt, khởi động lại tất cả các máy chủ và thử lại.
Baud avatar
lá cờ sa
`X-Forwarded-Proto` được đặt thành `https` và `X-Forwarded-Port` được đặt thành 443 như được hiển thị bởi `phpinfo()`.
Baud avatar
lá cờ sa
bạn có biết cách theo dõi chuyển hướng "quá nhiều" không? Nó là một thứ của Apache hay nó có thể là một vấn đề của Drupal?
4uk4 avatar
lá cờ cn
Có quá nhiều chuyển hướng trong chủ đề này. Bạn không cần phải gỡ lỗi vấn đề nội dung hỗn hợp, bạn có thể kết nối trình duyệt với proxy qua https bằng cách nhập proxy đó vào thanh địa chỉ. Gỡ lỗi chuyển hướng http->https trên proxy cạnh khi mọi thứ khác đang hoạt động và sau đó bắt đầu với 302 không cố định.
Baud avatar
lá cờ sa
Tôi đã đọc 10 lần nhận xét cuối cùng của bạn, nhưng tôi không hiểu... nó hoàn toàn khó hiểu đối với tôi. Bạn có phiền viết ra ý tưởng của bạn trong câu trả lời của bạn? Tất cả cấu hình Apache của tôi đều có ở đây trong bài đăng, không có chuyển hướng nào khác ngoài chuyển hướng đang chuyển hướng http sang https. Tôi không biết "Proxy biên" là gì
4uk4 avatar
lá cờ cn
Để rõ ràng, bạn cần xóa mọi mã chuyển hướng và bắt đầu lại. Chuyển hướng vĩnh viễn rất khó gỡ lỗi (điều khó chịu nhất mà tôi biết). Sau này (không liên quan đến sự cố), bạn có thể thêm chuyển hướng đến proxy ngược (proxy trên cạnh của máy khách) để tự động thay đổi http thành https trong thanh địa chỉ.
Baud avatar
lá cờ sa
Cảm ơn bạn, tôi sẽ xóa chuyển hướng vĩnh viễn vào tối nay (đây là trang web thử nghiệm hiện đang hoạt động... Tôi có thể làm cho nó hoạt động bằng cách thay đổi số cổng và bằng cách chuyển hướng lưu lượng truy cập [sử dụng cổng này] đến máy chủ 87 của tôi bằng tường lửa... mọi người đồng ý sử dụng một cổng khác cho một trang web thử nghiệm) nhưng tôi chỉ có thể làm việc với nó vào buổi tối...
Baud avatar
lá cờ sa
Tôi đã xóa TẤT CẢ cấu hình khỏi máy chủ biên ngoại trừ proxy được mô tả ở đầu câu hỏi này. Tôi đã thay thế .htaccess bằng cái gốc và tôi vẫn nhận được quá nhiều chuyển hướng. Làm sao để biết nó đến từ đâu?

Đă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.