เราวางแผนที่จะอัปเกรดเว็บแอปพลิเคชันของเราจากแอปพลิเคชันที่ใช้ php เนทีฟเป็น PHP Framework (Laravel) เพื่อเพิ่มความปลอดภัยและประสิทธิภาพของแอปพลิเคชัน งานของฉันคือแยกทราฟฟิกที่ทุกคำขอชี้ไปที่โดเมน app.localhost
โดยไม่ต้องโพสต์ฟิกซ์ /v3
ยังคงส่งต่อไปยังแอปพลิเคชันเก่าบน php-เนทีฟ
โหนดเว็บเซิร์ฟเวอร์และพร็อกซีทุกคำขอด้วย /v3
เส้นทางสู่ ลาราเวล
โหนดเว็บเซิร์ฟเวอร์ ด้านล่างนี้คือการกำหนดค่าของฉันที่ส่งผลให้เนื้อหาทั้งหมด (css และ js) และ URL ที่สร้างโดย Laravel ชี้ไปที่เส้นทางรูท
URL ที่สร้างโดย Laravel ชี้ไปที่แอปพลิเคชันเก่า
Front Proxy (เครือข่ายสาธารณะ)
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name app.localhost;
# แอปเนทีฟ PHP
ที่ตั้ง / {
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://php-native/;
}
# Laravel (แอป v3)
ตำแหน่ง /v3/ {
proxy_set_header โฮสต์ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://laravel/;
}
}
เว็บเซิร์ฟเวอร์ (เครือข่ายส่วนตัว)
php-เนทีฟ
เว็บเซิร์ฟเวอร์
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name app.localhost;
รูท /usr/share/nginx/html/webapp/app;
ที่ตั้ง / {
ดัชนี index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
ตำแหน่ง ~ \.php$ {
fastcgi_pass php56-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/webapp/app/$fastcgi_script_name;
รวม fastcgi_params;
}
}
ลาราเวล
เว็บเซิร์ฟเวอร์
เซิร์ฟเวอร์ {
ฟัง 80;
server_name app.localhost;
รูท /usr/share/nginx/html/webapp/app-v3/public;
ดัชนี index.php index.html index.htm;
ที่ตั้ง / {
ดัชนี index.php index.html index.htm;
try_files $uri $uri/ /index.php?$query_string;
}
ตำแหน่ง ~ \.php$ {
fastcgi_pass php74-fpm:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/webapp/app-v3/public/$fastcgi_script_name;
รวม fastcgi_params;
}
}
ขอบคุณ
อัปเดต
คำถามของฉันคือ: วิธีแยกทราฟฟิก ดังนั้นคำขอใด ๆ จึงชี้ไปที่ app.localhost
ยังคงส่งต่อไปยัง php-เนทีฟ
เว็บเซิร์ฟเวอร์และคำขอทั้งหมดชี้ไปที่ app.localhost/v3
ชี้ไปยัง ลาราเวล
เว็บเซิร์ฟเวอร์ ?