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
và /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.