ฉันกำลังตั้งค่าสภาพแวดล้อม Amazon Linux 2/PHP/NGINX ใหม่ และฉันไม่ค่อยคุ้นเคยกับ Nginx เนื่องจากสภาพแวดล้อมสุดท้ายของฉันบน Elastic Beanstalk คือ Amazon Linux/PHP/Apache (Amazon เปลี่ยนพร็อกซีเป็น Nginx จาก Apache และแพลตฟอร์มพื้นฐานได้รับการอัปเกรดจาก Amazon linux เป็น AL2)
ก่อนหน้านี้ ฉันมีไฟล์ .htaccess เพื่อจัดการหลายโดเมน โดยที่โดเมนจะมีโฟลเดอร์ที่เกี่ยวข้องกัน แต่ฉันรู้ว่าไฟล์ .htaccess จะไม่ทำงานกับ Nginx
จนถึงตอนนี้ ฉันได้ลองเพิ่มไฟล์ปรับแต่งในโฟลเดอร์ .ebextensions ด้วยสิ่งนี้:
files:
"/etc/nginx/sites-available/example.com.conf":
mode: "000644"
owner: root
group: root
source: https://someothersite.com/example.com.conf
แหล่งที่มาที่อ้างอิง (example.com.conf) มีสิ่งนี้:
server {
listen 80;
root /var/www/html/example.com;
index index.html index.php;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
}
ฉันคิดว่าฉันต้องสร้างลิงก์สัญลักษณ์ ดังนั้นฉันจึงมีไฟล์กำหนดค่าอื่นในโฟลเดอร์ .ebextensions ที่มีสิ่งนี้:
commands:
10_link:
command: sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
หลังจากคำสั่ง ln นี้ ฉันได้รับข้อผิดพลาดระหว่างการสร้าง หากฉันไม่ทำตามคำสั่งนั้น ฉันก็จะไม่ได้รับข้อผิดพลาด แต่มันใช้งานไม่ได้ (example.com/test.php จะไม่แสดงผล)
ความพยายามครั้งล่าสุดของฉันคือการไม่ทำอะไรเลยในโฟลเดอร์ .ebextensions และฉันได้สร้าง .platform/nginx/conf.d/custom.conf ด้วยเนื้อหาของ
server {
listen 80;
root /var/www/html/example.com;
index index.html index.php;
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
}
ดูเหมือนว่าจะใกล้กว่านี้เมื่อ example.com/test.php กำลังไปที่ไฟล์ แต่เซิร์ฟเวอร์แจ้งให้เบราว์เซอร์ดาวน์โหลดไฟล์ php แทน