Articles of nginx

Nginx的404错误页面的PHP与PARAMS

在Opencart中,404错误显示在这个URL中:/index.php?route=error/not_found这个页面有一个包含所有网站模板的404自定义页面。 我在Nginx中尝试过: error_page 404 = /index.php?route=error/not_found; 但它会去nginx的404错误页面。 如果我只写: error_page 404 = /index.php; 它去索引,但我不想去索引,我想去404 opencart页面。 我也尝试了一个命名的位置,并在一个重写,但我无法得到它的工作: error_page 404 = @error; location @error { rewrite ^.*$ /index.php?route=error/not_found last; } 它也没有工作。 它转到nginx 404错误页面

仙人掌graphics不工作

我试着用mariadb,nginx 1.4,php 5.4.x在CentOS 6上设置Cacti 我只是无法让图表更新 我的cacti文件全部由用户nginx拥有,所以我的crontab文件/etc/cron.d/cacti有 */5 * * * * nginx /usr/bin/php -q /usr/share/nginx/html/cacti/poller.php > /var/local/log/poller.log 2>&1 但是,我发现它在cron日志中运行,但是它不会在poller.log中产生任何输出,并且不会更新cacti.log。 Oct 13 12:20:01 srv CROND[14644]: (nginx) CMD ( /usr/bin/php -q usr/share/nginx/html/cacti/poller.php > /var/local/log/poller.log 2>&1) 我可以运行sudo -u nginx /usr/bin/php -q /usr/share/nginx/html/cacti/poller.php并查看输出,它似乎更新.rrd文件。 另外,我已经运行了这个sudo -u nginx php -q cli/rebuild_poller_cache.php并且在图上我得到了一个数据点,但是我甚至无法手动更新graphics。 在cacti.log中似乎没有任何帮助(仅在手动运行时更新)。 我也没有看到关于SELinux的/var/log/secure内容,但是我可能错过了它(不知道要找什么)。 我应该在哪里解决这个问题? 为什么即使cronjob正在运行,cronjob也不工作? 我怎样才能让graphics再次更新? 更新:我想我看到了这个问题。 我没有看过实际的rra文件夹的权限,只是它的符号链接。 我会试着解决这个问题。 相关rra文件的权限: $ […]

安全地configurationphp的nginx

我想使用Nginx的Symfony2网站和其他软件,如phpMyAdmin。 我已经阅读了关于设置Symfony2的nginx文档,并且遇到了这个问题: http : //www.webhostingtalk.com/showthread.php? p=6807475#post6807475 我可以只使用security.limit_extensions=php ,然后使用这样的安全吗? location \.php$ { … } 这个博客似乎表明这是一个解决安全问题的file upload: http : //kaiwangchen.com/blog/2012/10/understand-the-cgi-fix_pathinfo-security-issue/ 但是大多数带有用于设置nginx的教程的地方都推荐了将php限制到特定文件的旧解决scheme。 所以我不确定这是否真的避免了任意代码注入。 或者我应该使用try_files ?

Nginx在proxy_pass上的erorr_page?

NGINX内置的error handling是否支持proxy_pass或上游服务器? 我已经testing了error_page 404 /404.html的变体,然后定位到我的静态文件,但是没有运气。 下游的weblogic服务器在响应中呈现404,但nginx似乎无法看到这个? 有没有解决的办法? 也许$ header_responsetypesvariables?

Nginx代理上游caching?

试图解决一个让我烦恼的问题。 我已经将这些症状提炼成了一系列可重复的步骤: 我有两个网站, siteA和siteA 。 它们都是运行在不同端口上的Node.js应用程序(例如, 4567和4568 ) 这两个应用程序都在sites_available (加上来自sites_enabled的符号链接)中拥有自己的文件,它们分别在location块内包含指令proxy_pass http://node_siteA/和proxy_pass http://node_siteB/ 。 他们每个人都有一个upstream块(全球定义?): 上游node_siteA {上游node_siteB { 服务器127.0.0.1:4567; 服务器127.0.0.1:4568; }} 网站A和网站B没有任何关系。 是的,我每次重新启动(实际上重新加载)nginx。 如果我把站点B取下并尝试通过networking访问它,我被送达站点A. 为什么是这样? 思考 其他时候,例如,当我创build一个新的Site C ,nginx拒绝向我显示除“Welcome to nginx!”以外的任何内容。 约5分钟。 这可能表明parsing器超时,也许? 当我的Site B在其configuration被删除后访问Site B ,它将我发送到Site A ,这听起来像nginx以循环的方式将我发送到服务器…

nginx为googlebot提供不同的html文件

我有一个angular色的应用程序通过nginx服务。 对于googlebot我想提供一个不同的静态HTML文件,以便它可以正确的索引,下面的nginxconfiguration是否正确? (我不想让使用phantomjs的设置变得复杂,我只想探索像sitemap.xml这样的其他选项,除非nginx不能完成这项工作) location / { if ($http_user_agent ~ Googlebot) { rewrite ^/(.*)$ /forgooglebot.html break; } root /usr/share/nginx/app; try_files $uri $uri/ /index.html; }

Nginx重写目录到Symfony App,但删除主机目录

我有一个虚拟机,上面有几个开发应用程序。 基本的Web目录如下所示: /var/web/subdoms/: index.php MyApp/ SomeOtherApp/ 我有我的Nginx的configuration文件,指定根作为/ var / web / subdoms,例如: http://myserver/ -> /var/web/subdoms/index.php. 在MyApp子目录中,是一个Symfony2项目。 SomeOtherApp目录是一个通用的perl-cgi应用程序 http://myserver/SomeOtherApp -> /var/web/subdoms/SomeOtherApp/index.pl 对MyApp的请求需要redirect到以下子目录: http://myserver/MyApp/ -> /var/web/subdoms/MyApp/symfony/web/ 从那里,请求需要重写,以便请求被传递到'app.php'ala: http://myserver/MyApp/ -> /var/web/subdoms/MyApp/symfony/web/app.php http://myserver/MyApp/hello/you -> /var/web/subdoms/MyApp/symfony/web/app.php/hello/you 当我设置我的根:/ var / web / subdoms / MyApp / symfony / web /,并通过遵循symfony文档中的示例来请求sans'MyApp'时,我可以完成此操作。 然而,当我尝试嵌套应用程序的一个目录(以便我的服务器可以在同一个域上服务多个应用程序,而不是由symfony应用程序支配),“MyApp”部分被添加到URL ala: http://myserver.com/MyApp/hello/you -> /var/web/subdoms/MyApp/symfony/web/app.php/MyApp/hello/you 然后symfony抱怨说找不到路线“MyApp / hello / you”。 我可以通过在我所有的symfony路线上加上“MyApp”来解决这个问题,但是这让人感觉很笨拙。 […]

Nginx用Simple Machines Forum重写

我正在运行Nginx 1.5.6,我使用Simple Machines Forum软件。 大多数重写规则似乎都正常工作,除了RSS源。 在我的Nginxconfiguration中,我有下面这行应该处理包含“.xml”的URL: rewrite ^/forum/(\.xml|xmlhttp)/?$ "/forum/index.php?pretty;action=$1" last; 上述规则为主论坛生成以下URL,该论坛返回403错误: http ://www.mydomain.com/forum/.xml/?type= rss 我想重写规则来产生这种types的URL,它返回代码200(一个真实的网页): http : //www.mydomain.com/forum/? type=rss;action =.xml 这里是关于论坛重写整个块: http : //pastebin.com/raw.php? i= tZkAibW3 我真的很感谢一些帮助来创build一个重写规则来做到这一点。 谢谢。

nginx与fail2ban和mod_security

我忘了更新我的nginx的fail2banconfiguration。 我刚刚从apache移到了nginx。 今天,我从一个单一的知识产权获得了很多的好处。 IP试图访问login页面后获取方法 IP试图使用nginx作为代理(GET http:/ …) IPsearch图像,js,css文件夹 IP试图注入-d url_allow_fopen = 1和类似的东西。 大部分通话以404结束。 http { limit_req_zone $binary_remote_addr zone=app:10m rate=5r/s; … server { … location / { limit_req zone=app burst=50; } 我从那个IP获得了大约50个请求。 所以我更新了我的nginx像上面一样。 现在每秒会避免太多的连接吗? 我已经更新了我的fail2ban jail.local以支持nginx。 我对nginx-noscript.conf感到困惑 [Definition] failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\scgi) ignoreregex = 我使用nginx服务php。 我查了一下apache的noscript.conf,其中也有.php扩展名。 在重新启动fail2ban之前,我testing了以上设置并获得了数千个ips匹配。 我删除了PHP和没有匹配。 我需要.php | 在nginx-noscript.conf? 一起使用mod_security和fail2ban会带来什么问题? 当我今天search时,我也知道mod_security也可用于nginx。 所以我也打算使用它。

Nginx:禁止URL中的index.html

我们正在生成一个只包含静态文件的网站(使用汇编 )。 在URL上使用.html扩展名看起来如此九十年代,所以我们在自己的目录中生成每个静态的HTML文件,并将其称为index.html。 例如,urlhttp://www.example.com/foo/bar/位于/var/www/foo/bar/index.html文件中。 这个效果很好,但有一个小东西唠叨我:现在有两个可能的URL到同一个资源: http://www.example.com/foo/bar/ (斜杠url) http://www.example.com/foo/bar/index.html(index.htmlurl) 偶然有人可能链接到URL的index.htmlforms,这是不利于search引擎优化,看起来丑陋(还记得九十年代?)。 是否有可能在Nginx的index.htmlurl404错误,但服务的斜杠url? 我试过这个: location ~ /index\.html$ { return 404; } 但似乎Nginx在内部重写了index.html URL的斜杠URL,然后匹配这个位置,所以我们甚至在斜杠URL上也得到了一个404。 请注意,要发现错误,我们希望index.htmlurl是错误的 ,而不仅仅是redirect到斜杠url。