Nginx + Slim路由POST数据

时间:2016-09-01 09:30:54

标签: php post nginx url-rewriting slim

我在使用Slim POST路由正确配置Nginx时遇到了问题。

在StackOverflow的帖子中,据说重写POST请求不是一个好习惯。

发布:nginx rewrite post data

我的想法是让http://someurl.com/scan成为index.php中的POST路由,并且只允许/ scan上的POST请求,并拒绝其他所有内容。

的index.php:

$app->post('/scan', function(ServerRequestInterface $request, ResponseInterface $response) { ... }

我的Nginx conf看起来像这样:

server {
       listen       80;
       server_name  someurl.com;

       index index.php;
       root /var/www/maxime/public;
       error_log /var/log/nginx/max.err
       access_log /var/log/nginx/max.log

      location / {
          deny all;
      }

      location = /scan {
          limit_except POST {
              deny all;
          }
         rewrite ^/scan$ /index.php last;
      }

      location ~ index\.php$ {
          try_files $uri =404;
          fastcgi_split_path_info ^(.+\.php)(/.+)$;
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          fastcgi_param SCRIPT_NAME $fastcgi_script_name;
          include fastcgi_params;
          fastcgi_pass php_pool;
          fastcgi_keep_conn on;
      }
}

对我来说,这个conf告诉我,如果请求在/ scan上完成并且它是一个POST请求,那么我们将所有内容“重定向”到/index.php。然后index.php位置块开始执行,它将所有内容传递给index.php或我错误地在某个地方?

目前使用此设置我在Nginx中收到此错误:

  

* 100778 readv()失败(104:Connection re   读取上游客户端时的设置:123.123.123.123,服务器:someurl.com,    请求:“POST / scan HTTP / 1.1”,上游:“fastcgi://127.0.0.1:9001”,主持人:“someurl.com”

0 个答案:

没有答案