我有一个 Wordpress 安装,在其根文件夹中我有一个自定义的外部服务。我想在单独的池上运行此外部服务。因此,我创建了 2 个池php 前端模块一个将在 127.0.0.1:9000 中运行,第二个将在:127.0.0.1:9001 中运行
我检查了一下,我是否可以 telnet 到这个端口,并且它已经打开并可以正常工作。
我的 NGINX 不会发送数据。这是我的 nginx 配置:
server {
listen 80;
root /var/www/website;
index index.php index.html index.htm;
location / {
# try_files $uri $uri/ =404;
try_files $uri $uri/ /index.php?q=$uri&$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /service {
# include cors;
try_files $uri =404;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;
}
}
现在当我去
我得到了 wordpress 的 404,但是当我去
http://localhost/service/index.php
我正在获取服务。
如果我删除
定位服务
从 Nginx 配置中,当我导航到时,我将获取服务文件夹中的 index.phphttp://localhost/服务
我该如何配置以便在 /service URL 上调用该服务?
答案1
Nginx 配置是按顺序执行的,因此为了让它在第一次匹配后停止,你需要添加break 指令像这样:
location /service {
# include cors;
try_files $uri =404;
fastcgi_param REMOTE_ADDR $http_x_real_ip;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_param REMOTE_ADDR $http_cf_connecting_ip;
break;
}