Nginx
nginx 為某些路由設置條件反向代理
我有一個 laravel 伺服器,前面是託管在另一台伺服器上的 wordpress。laravel 伺服器正在接收所有流量。我想將特定路由定向到本地 index.php (laravel),並將所有其他路由定向到 wordpress。像這樣:
/a/* --> laravel server (localhost) /b/* --> laravel server (localhost) /* --> wordpress (separate server)
我的 nginx conf 目前有這個:
index index.html index.htm index.php; location ~* /[a|b]/.+ { try_files $uri $uri/ /index.php?$query_string; } location ^~ / { proxy_pass https://10.0.1.44; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
wordpress 正在接收所有路由。如何在本地伺服器上強制並由 index.php 提供服務
/a/*
?/b/*
問題是
location ^~ /
指令性的。這使得前綴匹配顯式並防止 nginx 查看正則表達式匹配。嘗試以下操作:
location ~*^/[ab] { try_files $uri $uri/ /index.php?$query_string; } location / { proxy_pass https://10.0.1.44; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }