Điểm:0

Proxy đảo ngược Apache - URL không có/bị từ chối

lá cờ us

Tôi sử dụng proxy ngược để hiển thị nội dung máy chủ phụ trợ cho tên miền phụ. Tên miền phụ.mydomain.com (máy chủ A) sẽ hiển thị nội dung của máy chủ có IP 123.123.123.123 cổng 1111 (máy chủ B).

Máy chủ ảo của subdomain.mydomain.com (máy chủ A):

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName subdomain.mydomain.com

SSLEngine on
SecAuditEngine On
RewriteEngine On
SSLProxyEngine on
ProxyPreserveHost On
LogLevel warn

<Directory />
    Options -Indexes +FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Location />
    ProxyPass https://123.123.123.123:1111
    ProxyPassReverse https://123.123.123.123:1111
</Location>

ErrorLog /var/log/apache2/error.log

SSLProtocol             all -SSLv2 -SSLv3
SSLHonorCipherOrder     on
SSLVerifyClient none
SSLVerifyDepth 1

SSLCertificateFile /etc/apache2/cert.site/chain_wildcard_site_combined.crt
SSLCertificateKeyFile /etc/apache2/cert.site/key_wildcard_site.key
 
SetEnvIf User-Agent ".*MSIE.*" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0

</VirtualHost>                                  
</IfModule>

Máy chủ ảo của 123.123.123.123:1111 (máy chủ B):

<IfModule mod_ssl.c>
    <VirtualHost 123.123.123.123:1111>
        DocumentRoot /srv/www/site/htdocs

SSLEngine on
RewriteEngine On
SSLProxyEngine on
ProxyPreserveHost On
LogLevel warn

<Location "/">
   Require ip 222.222.222.222
</Location>

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

<Directory /srv/www/site/htdocs>
    Options -Indexes +FollowSymLinks +MultiViews
    DirectoryIndex index.php
    AllowOverride None
    Require all granted
</Directory>

ErrorLog /srv/www/site/log/error.log
CustomLog /srv/www/site/log/access.log combined
CustomLog /srv/www/site/log/ssl_request_log \
            "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

SSLProtocol             all -SSLv2 -SSLv3
SSLHonorCipherOrder     on
SSLVerifyClient none
SSLVerifyDepth 1

SSLCertificateFile /etc/apache2/cert.site/chain_wildcard_site_combined.crt
SSLCertificateKeyFile /etc/apache2/cert.site/key_wildcard_site.key

        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>

    </VirtualHost>
</IfModule>

Nếu tôi tải URL: https://subdomain.mydomain.com/dir/

nó tải thành công.

Nếu tôi tải URL (không có dấu gạch chéo): https://subdomain.mydomain.com/dir

kết quả là trang lỗi: ERR_CONNECTION_REFUSED.

CHỈNH SỬA1:

Tôi thực hiện lệnh:

cuộn tròn -IL https://subdomain.mydomain.com/dir

và tôi nhận được kết quả này:

HTTP/1.1 301 được di chuyển vĩnh viễn
Ngày: Thứ Hai, ngày 23 tháng 8 năm 2021 13:45:13 GMT
Máy chủ: Apache
An ninh-Giao thông nghiêm ngặt: max-age=15768000; bao gồm tên miền phụ
An ninh-Giao thông nghiêm ngặt: max-age=15768000; bao gồm tên miền phụ
Vị trí: https://subdomain.mydomain.com:1111/dir/
Loại nội dung: văn bản/html; bộ ký tự = iso-8859-1

curl: (7) Không thể kết nối với tên miền phụ.mydomain.com cổng 1111: Kết nối bị từ chối

CHỈNH SỬA2:

Tôi đã thêm dấu gạch chéo

<Location />
    ProxyPass https://123.123.123.123:1111/
    ProxyPassReverse https://123.123.123.123:1111/
</Location>

Nhưng tôi vẫn nhận được Kết nối bị từ chối lỗi.

Bất kỳ ý tưởng tại sao nó dẫn đến lỗi, khi dấu gạch chéo bị thiếu?

Cảm ơn!

Chris avatar
lá cờ it
Tôi sẽ thử thêm dấu gạch chéo ở cuối vào chỉ thị `ProxyPass`/`ProxyPassReverse` trong khối vị trí của bạn. Từ những gì tôi thấy trong tài liệu và cấu hình riêng, bạn có thể viết `ProxyPass "/" "something_with_trailing_slash/"` hoặc `ProxyPass "/url" "something_without_trailing_slash"`, trong khi khối vị trí của bạn tương đương với `ProxyPass "/" "something_without_trailing_slash`
klor avatar
lá cờ us
Trước đó tôi đã sử dụng `ProxyPass "/" "something_with_trailing_slash/"` với kết quả sai tương tự.
mforsetti avatar
lá cờ tz
thực hiện cả `curl -IL https://subdomain.mydomain.com/dir` và `curl -IL https://subdomain.mydomain.com/dir/` và chỉnh sửa câu hỏi để bao gồm đầu ra.
klor avatar
lá cờ us
@mforsetti đã thêm kết quả cuộn tròn vào OP
Điểm:1
lá cờ cm

Xem lại cài đặt tường lửa và nhật ký máy chủ của bạn trên máy chủ B, đồng thời xác minh rằng máy chủ A có thể truy cập máy chủ B bằng địa chỉ IP chính xác với tư cách là người gửi (tôi giả sử đó là 222.222.222.222). Danh sách của bạn cho máy chủ B cũng thiếu một Nghe 1111 https chỉ thị.

chỉnh sửa Máy chủ phụ trợ đang buộc chuyển hướng:

HTTP/1.1 301 được di chuyển vĩnh viễn
Vị trí: https://subdomain.mydomain.com:1111/dir/

Việc có tiêu đề HSTS và việc không có bất kỳ quy tắc viết lại nào khiến tôi cho rằng chính ứng dụng đang phát hành chuyển hướng.

Xác minh nó là gì.

Bạn đã nói rằng với '/' được thêm vào, mọi thứ hoạt động tốt. Buộc dấu '/' với mod_rewrite trên máy chủ giao diện người dùng có vẻ như là một giải pháp chấp nhận được đối với tôi.

klor avatar
lá cờ us
Tôi đã quên đề cập rằng Listen 1111, 443 được đặt riêng trong port.conf. Tôi không nghĩ đó là sự cố tường lửa, vì nó hoạt động với/dir/ nhưng không hoạt động với/dir
lá cờ cm
Tìm hiểu điều gì kích hoạt chuyển hướng mà bạn gặp phải theo đầu ra của `curl`. Rất có khả năng đó là máy chủ phụ trợ (không rõ ràng từ các đoạn cấu hình bạn đã đăng) hoặc chính ứng dụng đang ép buộc nó. Thực thi một dấu `/` theo sau với các quy tắc viết lại có thể là một giải pháp thay thế có thể chấp nhận được.
Điểm:0
lá cờ no

Có vẻ như điều này đã được trả lời đây. Vẫn để trả lời câu hỏi của bạn,

Bạn đang thiếu dấu gạch chéo ở cuối cả hai chỉ thị ProxyPass và ProxyPassReverse.

Đọc cái này nếu bạn cần thêm chi tiết về lý do tại sao lại như vậy.

klor avatar
lá cờ us
Tôi đã thử đề xuất của bạn, nhưng tôi vẫn gặp lỗi. Xem OP đã sửa đổi.
Điểm:0
lá cờ fk

Proxy đảo ngược của bạn không (có lẽ không nên) nghe trên cổng 1111.

Tuy nhiên, máy chủ 123 của bạn đang chuyển hướng đến cổng 1111 (giả định dựa trên cấu hình bạn đã đăng).

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