Điểm:1

Truy cập máy chủ web của máy chủ trên mạng cục bộ bằng địa chỉ IP cục bộ của nó

lá cờ au

Tôi có một máy chủ với Apache làm proxy cho các yêu cầu đối với dịch vụ web Node. Tôi hiện có thể kết nối bằng trình duyệt bên ngoài mạng cục bộ bằng tên miền của mình: https://mydomain.ca. tôi tin tôi được sử dụng để có thể kết nối bằng trình duyệt bên trong mạng cục bộ của tôi bằng địa chỉ IP cục bộ của máy chủ: https://10.0.0.13. Tuy nhiên, khi tôi thử bây giờ, tôi gặp lỗi 500. Tôi đang tìm kiếm sự giúp đỡ để làm cho nó hoạt động trở lại. Tôi cũng không sao nếu không sử dụng SSL trên mạng cục bộ của mình và truy cập máy chủ bằng http://10.0.0.13 nếu điều đó khả thi hơn.

Tôi nhận được văn bản sau với lỗi 500:

Máy chủ proxy không thể xử lý yêu cầu 
Lý do: Lỗi trong quá trình Bắt tay SSL với máy chủ từ xa

Tôi đã xem nhật ký lỗi Apache của mình (/var/log/apache2/error.log) để tìm thêm manh mối, nhưng tôi không tìm thấy văn bản mà tôi thấy cực kỳ hữu ích:

[Chủ nhật ngày 28 tháng 11 23:11:42.609115 năm 2021] [proxy_http:error] [pid 28560:tid 140085584455424] [máy khách 10.0.0.220:26070] AH01097: nội dung yêu cầu vượt qua không thành công tới 127.0.0.1:4201 (lhost cục bộ) từ 10.0. 0,220() 
[CN 28 tháng 11 23:11:42.769782 2021] [proxy:error] [pid 28560:tid 140085567670016] (20014)Lỗi nội bộ (không có thông tin cụ thể): [client
10.0.0.220:26071] AH 01084: nội dung yêu cầu vượt qua không thành công 127.0.0.1:4201 (localhost) 
[Chủ nhật ngày 28 tháng 11 23:11:42.769805 năm 2021] [proxy:error] [pid 28560:tid 140085567670016] [client 10.0.0.220:26071] AH00898: Lỗi trong quá trình Bắt tay SSL với máy chủ từ xa returne d bởi /

Đây là những tập tin conf của tôi trông như thế nào:

mydomain.ca-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName mydomain.ca
    ServerAlias www.mydomain.ca
    ProxyPreserveHost on
    SSLProxyEngine on
    ProxyPass / https://localhost:4201/
    ProxyPassReverse / https://localhost:4201/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

ServerAlias mydomain.ca
SSLCertificateFile /etc/letsencrypt/live/mydomain.ca/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.ca/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

mydomain.ca.conf

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName mydomain.ca
    ServerAlias www.mydomain.ca
    DocumentRoot /var/www/mydomain.ca
    ProxyPreserveHost on
    ProxyPass / http://localhost:4201/
    ProxyPassReverse / http://localhost:4201/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost>

CHỈNH SỬA - Đây là một số thông tin về dịch vụ web Node: Dịch vụ web Node đang lắng nghe trên một cổng và nó chỉ lắng nghe các kết nối https.

lá cờ ru
`http://10.0.0.13` sẽ hoạt động. Chỉ cần đảm bảo rằng trình duyệt đó không tự động chuyển hướng đến https, điều này rất có thể là do các xu hướng mới nhất chỉ chuyển thành https.
lá cờ au
Tôi đã kiểm tra kỹ để chắc chắn rằng tôi không bị chuyển hướng và có thể xác nhận rằng sự cố được mô tả ở trên vẫn tiếp tục xảy ra ngay cả khi tôi điều hướng đến `http://10.0.013` từ trong mạng cục bộ của mình
Điểm:2
lá cờ in

Bạn đã định cấu hình cả HTTP và HTTPS để kết nối với cùng một cổng trên máy chủ phụ trợ.

Rất khó có khả năng máy chủ phụ trợ của bạn hỗ trợ cả hai giao thức trên cùng một cổng.

Sử dụng HTTP trong cả Virtualhost hoặc sử dụng đúng cổng cho HTTPS nếu máy chủ phụ trợ của bạn hỗ trợ cả hai.

lá cờ ru
Hỗ trợ phụ trợ chỉ http. Việc chấm dứt SSL xảy ra ở phía apache. Như vậy cấu hình là OK.
lá cờ in
không, nó không phải. Bạn có `ProxyPass / https://localhost:4201/` trong cấu hình của mình. Apache cố gắng nói chuyện với phần phụ trợ của bạn bằng https, nhưng nó trả lời bằng HTTP. Do đó, `Lỗi trong quá trình Bắt tay SSL`.
lá cờ ru
À, đúng rồi. Đó là một sai lầm khác. Tôi nghĩ rằng cả hai máy chủ ảo đều nên sử dụng http. Nhưng chắc chắn, chúng tôi không biết bất cứ điều gì về phụ trợ.
lá cờ au
Tôi đã chỉnh sửa bài đăng gốc của mình với một số thông tin bổ sung về cách thiết lập dịch vụ web Node. Tôi đã thử `ProxyPass / https://localhost:4201/` trong `mydomain.ca.conf` và sau đó điều hướng đến `http://mydomain.ca`, nhưng sau đó nhận được một "Lỗi Dịch vụ Nội bộ" khác. Tôi cũng đã thử điều hướng đến `https://10.0.0.13` và điều đó tiếp tục khiến tôi gặp phải "Lỗi proxy" tương tự được mô tả ở trên. Đặc biệt, tôi không chắc tại sao phương pháp cuối cùng này không hoạt động khi `https://mydomain.ca` hoạt động từ bên ngoài mạng của tôi.
Điểm:1
lá cờ au

Một số ý kiến ​​​​ở trên khiến tôi suy nghĩ về điều này đúng cách. Cách tiếp cận tôi đã đi với là để

  • chạy các máy chủ http & https riêng biệt trên các cổng khác nhau trong dịch vụ web Node của tôi,
  • cập nhật số cổng trong mydomain.ca.conf và mydomain.ca-le-ssl.conf để tương ứng với đúng số cổng và
  • cập nhật mydomain.ca.conf để chỉ phản hồi các yêu cầu từ máy chủ cục bộ hoặc mạng LAN như hình bên dưới.
<Máy chủ ảo *:80>
  # Chúng ta chỉ nên truy cập máy chủ web qua http nếu trên localhost
  # hoặc trong mạng LAN.
  <Vị trí />
    Yêu cầu địa phương
    Yêu cầu ip 10.0.0.0/24
  </Vị trí>
  ...

Với tất cả điều này tại chỗ, bây giờ tôi có thể truy cập http://10.0.0.13 từ bên trong mạng cục bộ của tôi và https://mydomain.ca từ bên ngoài mạng cục bộ của tôi.

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