สวัสดี ฉันใช้ Laravel บนเซิร์ฟเวอร์ NGINX และฉันต้องการใช้ความสามารถของพร็อกซีย้อนกลับของ NGINX เป็นเกตเวย์ API สำหรับ Laravel และแอปพลิเคชัน API โหนดอื่นๆ ของฉัน นี่คือการกำหนดค่าของฉัน:
URL ของแอปพลิเคชัน: การแสดงละคร app.example.com
จุดสิ้นสุดของแอปพลิเคชัน API: staging-app.example.com/api
URL เกตเวย์ API: api.example.com
สิ่งที่ฉันต้องการทำคือเปลี่ยนเส้นทางคำขอ API ทั้งหมด api.example.com/staging-app
ถึง staging-app.example.com/api
. ฉันประสบความสำเร็จในการเปลี่ยนเส้นทางคำขอ API แต่อย่างใด ส่วนหัวการให้สิทธิ์
ไม่ถูกส่งต่อไปยังพร็อกซีพาส ส่งผลให้ 401 ไม่ได้รับอนุญาต ในขณะที่ส่วนหัวอื่นๆ ถูกส่งต่อไป
นี่คือปัจจุบันของฉัน api.example.com
การกำหนดค่า nginx:
เซิร์ฟเวอร์ {
server_name api.example.com;
สถานที่ / การแสดงละครแอป {
เขียนใหม่ ^/staging-app/(.*)$ /$1 ตัวแตก;
proxy_pass http://staging-app.example.com/;
}
สถานที่ / ทดสอบ {
เขียนใหม่ ^/test/(.*)$ /$1 แตก;
proxy_pass http://127.0.0.1:3333/;
}
ฟัง [::]:443 ssl; # จัดการโดย Certbot
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/api.example.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/api.example.com/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
ถ้า ($host = api.example.com) {
ส่งคืน 301 https://$host$request_uri;
} # จัดการโดย Certbot
ฟัง 80;
ฟัง [::]:80;
server_name api.example.com;
กลับ 404; # จัดการโดย Certbot
}
และสำหรับแอปพลิเคชัน laravel ของฉัน ฉันใช้การกำหนดค่าที่กำหนดจาก Laravel เอง
อัปเดต 1: ฉันพยายามเพิ่ม proxy_set_header ทดสอบ ค่าการทดสอบ
ในบล็อกตำแหน่งโดยตรง แต่ดูเหมือนว่าจะไม่ทำงานเช่นกัน