Nginx + WordPress:414 Request-URI太长

我用我的服务器上的php-fpm使用Nginx来运行我的WordPress的博客。

当有人在Facebook上分享我的网站时,Facebook添加了一些参数,URL如下所示:

https://jp.rlauzier.com/2013/07/les-courriels-et-la-securite-quelques-notions-a-savoir/?fb_action_ids=268110373331078&fb_action_types=og.likes&fb_source=other_multiline&action_object_map=%7B%22268110373331078%22% 3A434166526690497%7D&action_type_map =%7B%22268110373331078%22%3A%22og.likes%22%7D&action_ref_map =%5B%5D

我检查了我的日志,并有这个请求“414请求URI太长”。 我尝试在我的Nginxconfiguration文件中添加large_client_header_buffers,但没有结果。

但是,如果您只使用正常的URL( https://jp.rlauzier.com/2013/07/les-courriels-et-la-securite-quelques-notions-a-savoir/ ),一切工作正常。

这是我的configuration文件:

server { listen 443; server_name jp.rlauzier.com; ssl on; ssl_certificate /etc/nginx/ssl/jp.rlauzier.com.crt; ssl_certificate_key /etc/nginx/ssl/jp.rlauzier.com.key; include /var/www/jp.rlauzier.com/public_html/nginx.conf; location / { root /var/www/jp.rlauzier.com/public_html/; index index.php index.html index.htm; if ($request_uri ~* \.(ico|css|js|gif|jpe?g|png)$) { expires max; break; } try_files $uri $uri/ /index.php?q=$uri&$args; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /var/www/jp.rlauzier.com/public_html/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /(\.|wp-config.php|nginx.conf|readme.html|license.txt) { return 404; } } server { listen 80; server_name jp.rlauzier.com rlauzier.com; rewrite ^ https://jp.rlauzier.com$request_uri? permanent; } 

在互联网上的某个地方 :

很有可能您尝试在纯虚拟服务器中configurationclient_header_buffer_size / large_client_header_buffers {}。 这将不会工作,因为请求标头parsing发生在主机头已知(和select虚拟服务器)之前,因此parsing发生在侦听套接字的默认服务器的上下文中。

您必须在默认服务器(或http级别)上configurationclient_header_buffer_size / large_client_header_buffers。

发现有罪的一个…更好的WP安全插件!

有一个选项可以限制URL的长度。

然而,这个插件是惊人的,但增加了许多调整,以保护默认的Wordpress安装。

感谢你的帮助!