Xin chào, tôi đang chạy Laravel trên máy chủ NGINX và tôi muốn sử dụng khả năng proxy ngược NGINX làm cổng API cho Laravel của tôi và ứng dụng API nút khác. Đây là cấu hình của tôi:
URL ứng dụng: staging-app.example.com
Điểm cuối API ứng dụng: staging-app.example.com/api
URL cổng API: api.example.com
Điều tôi muốn làm là chuyển hướng tất cả các yêu cầu API api.example.com/staging-app
đến staging-app.example.com/api
. Tôi đã thành công trong việc chuyển hướng yêu cầu API, nhưng bằng cách nào đó, tiêu đề ủy quyền
không được chuyển qua proxy, dẫn đến lỗi 401 trái phép trong khi các tiêu đề khác được chuyển qua.
Đây là hiện tại của tôi api.example.com
cấu hình nginx:
người phục vụ {
server_name api.example.com;
vị trí /staging-app {
viết lại ^/staging-app/(.*)$ /$1 break;
proxy_pass http://staging-app.example.com/;
}
vị trí /kiểm tra {
viết lại ^/test/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:3333/;
}
nghe [::]:443 ssl; # được quản lý bởi Certbot
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
}
người phục vụ {
nếu ($host = api.example.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nghe 80;
nghe [::]:80;
server_name api.example.com;
trả lại 404; # được quản lý bởi Certbot
}
và đối với ứng dụng laravel của tôi, tôi sử dụng cấu hình được cung cấp từ bản thân Laravel
Cập nhật 1: Tôi đã thử thêm proxy_set_header Kiểm tra giá trị thử nghiệm
trực tiếp trong khối vị trí, nhưng có vẻ như nó cũng không hoạt động