Điểm:0

Proxy tất cả các yêu cầu đến máy chủ phụ trợ

lá cờ cn

Tôi hiện có một ứng dụng Angular lấy dữ liệu từ phần phụ trợ của Symfony. Khi phát triển, tôi đã sử dụng phục vụ hệ thống proxy máy chủ phát triển để chuyển hướng /api, /oauth-token/phương tiện truyền thông định tuyến đến máy chủ phụ trợ và điều này hoạt động tốt.

Bây giờ tôi muốn triển khai ứng dụng lên máy chủ web, tôi đã thiết lập máy chủ Nginx phục vụ các tệp tĩnh được tạo bởi ứng dụng Angular được xây dựng. Vì máy chủ phát triển không còn ở đó để ủy quyền cho các yêu cầu nữa nên tôi phải thực hiện việc này thông qua các tệp conf của Nginx để tôi có một proxy ngược chức năng.

Điều tôi chỉ cần là nếu tôi yêu cầu một cái gì đó như NHẬN http://localhost/api/products/1, yêu cầu này được ủy quyền cho NHẬN http://localhost:81/api/products/1. Điều này phải giống với tất cả các phương thức yêu cầu khác: POST, PUT, PATCH, v.v.

Vấn đề là dường như tôi không thể viết tệp conf phù hợp với nhu cầu của mình cho trường hợp sử dụng này. Điều tốt nhất tôi nhận được là phản hồi 302 hoặc 405.

Đây là tệp conf tôi hiện có:

người phục vụ {
    máy chủ_tên máy chủ cục bộ;
    gốc/var/www/ứng dụng web;

    địa điểm / {
        try_files $uri $uri/ /index.html;
    }

    vị trí ~ ^/(?:oauth-token|api|media)/ {
        proxy_pass http://localhost:81;
    }
}

Chương trình phụ trợ được lưu trữ trên cùng một máy chủ và phiên bản nginx so với giao diện người dùng, nhưng trên một cổng khác (cổng 81 thay vì 80).

Tôi đã thử tách khối vị trí của mình thành 3 khối riêng biệt cho mỗi tuyến đường trong trường hợp regex hoặc proxy pass của tôi bị sai, nhưng tôi nhận được kết quả tương tự:

    vị trí /api/ {
        proxy_pass http://localhost:81/api/;
    }

    vị trí /oauth-token/ {
        proxy_pass http://localhost:81/oauth-token/;
    }

Tôi cũng đã cố gắng xóa các dấu gạch chéo ở cuối URL chuyển proxy để xem liệu đó có phải là sự cố không nhưng không có kết quả.

Tôi đã thử làm theo những lời khuyên mà tôi tìm thấy trên các bài đăng khác về Lỗi máy chủ, nhưng thật đáng buồn là không có lời khuyên nào phù hợp với tôi.

Bạn có thể giúp tôi định cấu hình tệp này để các yêu cầu API này được ủy quyền cho máy chủ phụ trợ của tôi không? Cảm ơn.

Michael Hampton avatar
lá cờ cz
Đoạn mã cấu hình _first_ của bạn là đoạn mã tốt và bạn nên sử dụng nó làm cơ sở để khắc phục sự cố và loại bỏ cấu hình khác. Điều đó nói rằng, bạn cần chỉ định chính xác những lỗi bạn đã nhận được với nó. Tạo lại sự cố một lần nữa và sau đó xem nhật ký lỗi nginx.
lá cờ cn
Vấn đề là nhật ký lỗi không nói lên điều gì. Tôi chỉ nhận được thông báo `tắt máy một cách duyên dáng` khi khởi động lại docker nginx của mình để các tệp conf của tôi được tải lại, đó là lý do tại sao tôi khá bối rối. Nhật ký truy cập chỉ hiển thị cùng mã phản hồi 302 và 405 mà tôi đã viết trước đây.
Michael Hampton avatar
lá cờ cz
Sau đó, vấn đề là với ứng dụng của bạn và bạn cần xem xét ở đó.

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