Điểm:0

Nginx: không thể ủy quyền một số đường dẫn đến máy chủ Node.js (giữa các vùng chứa docker)

lá cờ us

Vì vậy, thiết lập hiện tại của tôi là như sau: Tôi đang sử dụng docker (cài đặt không root) và muốn sử dụng Bàn phím mật mã (sử dụng Node.js) với Nginx làm Proxy đảo ngược (tuyên bố từ chối trách nhiệm: Tôi chưa từng làm việc với Nginx trước đây). Cả Cryptpad và Nginx đều đang chạy trong các vùng chứa riêng biệt. Để phục vụ các tệp tĩnh, tôi đã tạo một ổ đĩa chứa tất cả các tệp tĩnh từ Cryptpad và được gắn trong Nginx-Container (chỉ đọc). Vấn đề là, một số nội dung không thể được cung cấp theo cách này: các tệp blob lớn sẽ được lưu trên một thư mục bên ngoài chỉ có thể truy cập được từ Cryptpad-Container (tôi có lý do của mình cho việc này). Vì vậy, tôi đã cố gắng yêu cầu Nginx gửi proxy_pass yêu cầu tệp này tới Máy chủ nút của Cryptpad, nhưng tôi không thể tìm ra cách xác định chuyển hướng này.

Cấu hình của tôi:

  • tên của Nginx-Container: nginx
  • tên của Cryptpad-Container: cryptpad
  • cổng của Node-Server: 3000
  • cả hai vùng chứa được kết nối với cùng một mạng cầu nối (tùy chỉnh) (và do đó có thể truy cập được bằng tên vùng chứa của chúng)

Nginx-Config cho máy chủ (rút ngắn đến phần có liên quan; mã đầy đủ được điều chỉnh từ đây)

[…]
vị trí ^~ /block/ {# đã sửa đổi vị trí khối để kiểm tra proxy (được truy cập dễ dàng hơn blob)
    add_header Cache-Control max-age=0;

    #try_files $uri =404;# mã gốc
    try_files http://cryptpad:3000/$request_uri =409;# mã lỗi tùy ý để phân biệt với các lỗi thông thường
}
[…]
vị trí @node {# được sử dụng để ủy quyền tất cả các vị trí chưa được xử lý cho nút
    proxy_pass http://cryptpad:3000;
}

try_files /www/$uri /www/$uri/index.html /customize/$uri @node;

Nhưng bất cứ khi nào /block/ được truy cập, máy chủ sẽ trả về 409 nên chuyển hướng không hoạt động. Tôi cũng đã thử nó với proxy_pass http://cryptpad:3000/$request_uri/; hoặc proxy_pass http://cryptpad:3000; (kết quả là 404) và try_files @node =409;.

Vì vậy, có ai biết cách làm cho chuyển hướng nội bộ này hoạt động hoặc ít nhất là một cách để theo dõi lưu lượng giữa hai vùng chứa không?

Michael Hampton avatar
lá cờ cz
Bạn nên bắt đầu lại với cấu hình ví dụ. Bây giờ bạn đang ở rất xa nó.
Max.-F. avatar
lá cờ us
@MichaelHampton Tôi không thay đổi nhiều lắm, thay đổi lớn nhất là các proxy bổ sung được mô tả để cho phép giao tiếp giữa các vùng chứa
Điểm:0
lá cờ us

Sau khi thử thêm, tôi tìm thấy một cấu hình hoạt động: Tôi chỉ cần sao chép các dòng khác từ proxy_passes từ ví dụ và do đó, định nghĩa kết quả cho /block/ trông giống như

vị trí ^~ /khối/ {
    add_header Cache-Control max-age=0;

    proxy_pass http://cryptpad:3000;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Máy chủ lưu trữ $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_hide_header Chính sách nguồn gốc chéo;
    #add_header Nguồn gốc chéo giữa Nguồn gốc-Tài nguyên-Chính sách;
    proxy_hide_header Cross-Origin-Embedder-Policy;
    #add_header Yêu cầu chính sách nhúng chéo nguồn gốc;
}

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