Điểm:0

Cách thiết lập Apache làm proxy ngược cho bộ chứa docker

lá cờ jp

Tôi đang vật lộn để thiết lập máy chủ Apache của mình làm proxy ngược cho docker chứa Đèn xanh ví dụ.

trong chính thức tài liệu nó được đề xuất để chạy Greenlight trong vùng chứa docker với phiên bản Nginx làm proxy đảo ngược (chủ yếu là để dễ dàng chạy nó cùng với máy chủ BBB). Tuy nhiên, trong thiết lập của mình, tôi không muốn chạy phiên bản BBB của riêng mình mà muốn sử dụng Greenlight làm giao diện người dùng cho máy chủ BBB bên ngoài.

Nhưng để thuận tiện, tôi vẫn thiết lập Greenlight trong vùng chứa docker.

Nhưng vì máy chủ của tôi có nhiều mục đích (chủ yếu nó được sử dụng để cung cấp một số trang web và cung cấp tài khoản e-mail do cả hai quản lý Froxlor nhưng nó cũng hoạt động như một Máy chủ ma trận) Tôi không muốn thiết lập Nginx làm proxy, vì điều đó sẽ buộc tôi phải thay đổi đáng kể thiết lập Apache do Froxlor quản lý đang chạy trên thực tế của mình.

Vì vậy, tôi đã cố gắng định cấu hình Apache thay vì làm proxy đảo ngược. Thật không may trong các tài liệu chỉ là một ví dụ Nginx:

vị trí /b {
  proxy_pass http://127.0.0.1:5000;
  proxy_set_header Máy chủ lưu trữ $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_http_version 1.1;
}

vị trí /b/cáp {
  proxy_pass http://127.0.0.1:5000;
  proxy_set_header Máy chủ lưu trữ $host;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  proxy_set_header Nâng cấp $http_upgrade;
  proxy_set_header Kết nối "Nâng cấp";
  proxy_http_version 1.1;
  proxy_read_timeout 6h;
  proxy_send_timeout 6h;
  client_body_timeout 6h;
  gửi_thời gian chờ 6h;
}

Tôi đã buộc phải thực hiện công việc này trên Apache với các cài đặt Virtualhost sau:

<VirtualHost MYIP:443>
  ServerName greenlight.example.com
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
ProxyPass / http://127.0.0.1:5000
ProxyPassReverse / http://127.0.0.1:5000   
<Location "/cable">
  ProxyPass / http://127.0.0.1:5000 connectiontimeout=6h timeout=6h
  ProxyPassReverse / http://127.0.0.1:5000
</Location>
</VirtualHost>

Tôi chuyển hướng khỏi ví dụ rằng tôi không muốn sử dụng thư mục con ảo »b« mà muốn sử dụng tên miền phụ t chuyển hướng lưu lượng truy cập cụ thể đến cổng cục bộ 5000. Thật không may, điều này không hoạt động. Máy chủ trả về

502 Lỗi máy chủ

Lỗi Proxy

Máy chủ proxy đã nhận được phản hồi không hợp lệ từ máy chủ ngược dòng.
Máy chủ proxy không thể xử lý yêu cầu

Lý do: Lỗi đọc từ máy chủ từ xa

Ai đó có thể vui lòng giải thích cho tôi những gì có thể là lý do cho lỗi này? Làm cách nào để dịch cài đặt Tiêu đề Nginx sang Apache và các cài đặt hết thời gian chờ khác và chúng có cần thiết không?

drookie avatar
lá cờ za
Vì vậy, về cơ bản, bạn đang cố gắng làm ngược lại với những gì ngành hiện đang làm. Vui vẻ.
lá cờ jp
@droookie Ý bạn là chuyển Nginx sang Apache? Vâng, không, tôi không. Tôi chỉ muốn cài đặt Greenlight trên một máy chủ có thể chạy nhiều thứ khác với Apache và việc định cấu hình lại hàng tá ứng dụng không có ý nghĩa gì vì âºindustriesâ¹ cho rằng Nginx tốt hơn.
djdomi avatar
lá cờ za
không, bạn đã không nhận được điểm. bạn nên sử dụng nginx làm bộ đệm và chạy các ứng dụng trên apache. đó là điểm anh ấy muốn nói. Vì vậy, hãy nói vấn đề ban đầu bởi vì imho bạn có [vấn đề về x và y](https://faq-database.de/doku.php?id=en:x-and-y-problem)
lá cờ jp
@djdomi Cảm ơn vì nhận xét. Có lẽ bạn là đúng. Tôi đã thay đổi câu hỏi để cố gắng cung cấp thêm thông tin cơ bản. Lúc đầu, tôi không muốn nói quá cụ thể...
Điểm:2
lá cờ in

Có một vài vấn đề ở đây:

  1. Trật tự
    Con đường phù hợp đầu tiên chiến thắng. Bạn đã đặt / trước /cáp, Vì thế / sẽ khớp luôn và /cáp sẽ không bao giờ được sử dụng.
  2. dấu gạch chéo phù hợp
    Nếu bạn kết thúc tham số đầu tiên của ProxyPass với một / bạn cần thêm một vào giây và ngược lại. Nếu không, bạn sẽ nhận được các URL không hoạt động được gửi đến chương trình phụ trợ
  3. ProxyPass bên trong một <Location> chặn
    Nếu bạn dùng ProxyPass bên trong <Location> nó chỉ nhận được tham số thứ hai. Đầu tiên là được thay thế bởi <Location>.

Ví dụ:

<VirtualHost MYIP:443>
    ServerName greenlight.example.com
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia On
    ProxyPass /cable http://127.0.0.1:5000 connectiontimeout=6h timeout=6h
    ProxyPassReverse /cable http://127.0.0.1:5000
    ProxyPass / http://127.0.0.1:5000/
    ProxyPassReverse / http://127.0.0.1:5000/
</VirtualHost>

Cuối cùng nhưng không kém phần quan trọng, hiện tại bạn đang ủy quyền cả hai vị trí cho cùng một URL phụ trợ. Điều này thường là sai.

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