Nginx 目录帖子

Nginx 目录帖子

我正在处理一段遗留代码,我无法改变它发布到的位置,所以我只需要想办法解决它。

Javascript 的片段如下所示:

POST /认证/登录/

这很奇怪,因为它是发布到一个目录,但无论如何,我想配置 Nginx 以接受到此位置的帖子,然后将它们传递给我的 Nginx 配置中的一些 PHP,我在 http 块中有以下内容

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }

    location /authentication/login/ {

       index hello.php;
       #root html;
       #index /usr/local/nginx/html/hello.php; 


    }


location ~.php$ {
    include /usr/local/nginx/conf/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
}
}

php 东西可以运行,我可以直接进入 hello.php 并且可以运行。

我的错误日志/访问日志并没有给我太多帮助。我在 hello.php 上遇到了 404 错误,但通过添加“index”解决了这个问题。然而,这并没有最终调用 php 的部分。我还尝试将 fastcgi 内容放入 nginx.conf 中的 /authenticate/login/ 位置。

最关键的是,如果我向 /authenticate/login 发布某些内容,我希望调用一段 php 代码来返回必要的值。

编写该位置块的正确方法是什么?有什么想法吗?

答案1

您需要在 ~.php {} 块之前指定确切位置以使 nginx 处理它,复制 fastcgi 参数以便将 url 传递给 php 并使用重写规则更改 uri。带有登录位置的配置块应如下所示:

location = /authentication/login/ {
    rewrite ^(.*) /hello.php last;
    include /usr/local/nginx/conf/fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
}

相关内容