我有一个使用 ZF2 的 PHP 应用程序 - 所以所有请求都进入索引.php它会整理出自己的路由。
我想配置以下设置:
www.example.com
请求转到cluster_web
块中配置的服务器。www.example.com/admin
请求将转到cluser_admin
块中配置的服务器。
如何使用NGINX实现这一点?
配置当前如下所示:
/etc/nginx/conf.d/cluster.conf
upstream cluster_web {
server 192.168.0.10:9000;
server 192.168.0.11:9000;
}
upstream cluster_admin {
server 192.168.0.20:9000;
server 192.168.0.21:9000;
}
/etc/nginx/conf.d/default.conf
server {
listen 80;
server_name _;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ '.php$ {
try_files $uri =404;
# how do I split this out?
fastcgi_pass cluster_web;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
我确定我可能需要在某个地方location /admin
?但不确定在哪里。
提前非常感谢。
我想
我可能已经解决了这个问题,但我不确定这是最优化的方法。
# web requests
server {
listen 80;
server_name _;
root /var/www/public;
location /admin {
proxy_pass http://127.0.0.1:8080;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ '.php$ {
try_files $uri =404;
fastcgi_pass cluster_web;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# admin requests
server {
listen 8080;
root /var/www/public;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ '.php$ {
try_files $uri =404;
fastcgi_pass cluster_admin;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
任何关于优化的想法将不胜感激。