Articles of http status code 404

Nginx使用Python-urllib返回404,但是如果从浏览器访问则罚款

我们有一个在Windows服务器上运行的repo服务器,它提供一些静态文件,这些静态文件应该由我们的工作者节点使用Python-urllib抓取。 问题在于,当我们向使用Python存在的文件发出请求时,我们会收到一个404错误,但是,如果我直接从浏览器访问文件,使用Python-urllib正在使用的相同链接,它工作得很好,文件被下载。 示例访问日志: xxx.xxx.xxx.xxx – – [24/Jul/2013:17:15:53 -0400] "POST /x/dl/Bukkit_Beta.jar.conf HTTP/1.1" 405 172 "-" "Python-urllib/2.7" 我在error.log中发现了一些奇怪的东西: 2013/08/04 22:29:11 [error] 6456#2696: *807 CreateFile() "C:\Users\Administrator\Desktop\Nginx/html/MCProHosting/dl/405" failed (2: The system cannot find the file specified), client: 198.15.64.226, server: localhost, request: "GET /MCProHosting/dl/405 HTTP/1.1", host: "repo.mcprohosting.com" 从这些日志看来确实正在生成一个405,而不是404,但是Python显示了一个404页面。 请注意,如果我们通过htdocs / html文件夹传输,这是一个新的下载的nginx下相同的目录结构在Apache下工作。 没有对Nginx进行configuration更改

用HAProxy处理404

我有一堆通过HAProxy传递给Resin集群的域。 这个想法是,当我收到一个404,因为一个不存在的子域,我想redirect到现有的页面,如下所示: test123是一个不存在的子域,所以如果我提出请求http://test123.mydomain.com/rents-house-near-the-lake.html我想redirect到http://www.mydomain.com /rents-house-near-the-lake.html (www是一个现有的子域名) 这将是可能的? 谢谢!!

nginx:如何只caching负面的FastCGI响应

需要一些集体头脑风暴:)。 有一个沉重的PHP应用程序(例如Magento),每次访问者遇到一个不存在的页面(或者应用程序的特定部分有问题,并且它返回错误),应用程序服务器上的负载就是滚雪球: 在不存在页面的情况下,它们不会被caching,应用程序花费相当多的资源来检查所有内容并生成caching副本,这将浪费时间; 在部分应用程序出现问题的情况下,应用程序将花费宝贵的时间来生成这些错误响应,以牺牲站点健康部分的访问者为代价。 这里的想法是将来自FastCGI后端的404和5xx等所有负面响应caching在nginx前端5分钟 – 这将显着降低对应用程序服务器的性能影响。 使用fastcgi_cache_ *指令可以很容易地实现caching。 但是,一旦在fastcgi_pass所在的位置块中定义了fastcgi_cache_ *指令,它将尝试caching经过该位置块的所有内容。 因此,问题是如何将fastcgi_cache限制为仅来自后端脚本的404响应? 只是为了说明情况多一点。 想象一下,一个请求到/ app / missing,应用程序只有在/index.php中的入口点,所以nginx会将请求传递给调用/index.php/app/missing的后端FastCGI服务器。 现在,由于/ app / missing不存在,index.php将返回HTTP 404.这个路由将会像请求/ app / missing一样紧缩CPU。 我们希望的是,一旦HTTP 404从index.php返回,/ app / missing将被从nginx的index.php中得到的404页面caching起来,所以如果有人请求/ app /马上丢失, PHP后端,但返回一个caching页面。

Apache多个ProxyPass 404

我试图在Ubuntu 14.04上通过Apache 2设置代理。 我有两个代理我想要使用。 一个是在本地运行的Ruby瘦服务器。 另一个是电话统计页面。 我已经configuration了一个conf文件,内容如下: <VirtualHost *:80> Redirect permanent / <ssl_site> </VirtualHost> <VirtualHost _default_:443> –snip certificate info– –snip contact info– LogLevel debug –snip log info– ProxyRequests Off ProxyPreserveHost On <Proxy *> Order Allow,Deny Allow from all </Proxy> SSLProxyEngine On <Location /> ProxyPass <Ruby thin server> ProxyPassReverse <Ruby thin server> </Location> <Location /phonestats/> RequestHeader […]

Nginx在看似有效的path上返回404

我试图直接提供静态文件,像这样的位置块: location /static/ { alias /opt/graphite/webapp/content/; } 但是,当我提出任何匹配/ static /的请求时,我得到一个404错误,并在错误日志中这样的消息: 2016/09/14 09:28:47 [error] 66068#0: *4 open() "/opt/graphite/webapp/content/js/completer.js" failed (2: No such file or directory), client: my.ip.add.ress, server: server.domain, request: "GET /static/js/completer.js HTTP/1.1", host: "server.ip", referrer: "http://server.ip/composer?" 问题是在错误消息中给出的path是完全有效的。 该文件存在。 这不是声称权限被拒绝,所以它似乎不是一个权限问题。 代理应用程序的位置正常工作。 我不知所措,而类似的post似乎都属于套接字。 在OpenBSD 6.0上运行nginx 1.10.1。

mod_proxy tomcat

我在几个地方问过这个问题,但是我没有find答案。 这应该是相当简单的和一个相当普遍的问题。 不幸的是,我对tomcat和mod_proxy一无所知,所以我无法弄清楚。 我有几个应用程序运行在tomcat,安装为战争,我可以访问他们在myserver.com:8080/myapp 我只是想创build一个Apache虚拟主机,使用mod_proxy将myapp.myserver.com转发到这个myserver.com:8080/myapp 。 哈德森是一个完美的例子,没有额外的configuration,只是一个部署的战争。 所以我设置了下面的apache vhost: <VirtualHost *:80> ServerName hudson.myserver.ca ProxyPreserveHost On ProxyPass / http://localhost:8080/hudson ProxyPassReverse / http://localhost:8080/hudson </VirtualHost> 和我的proxy.conf是: <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> # Enable/disable the handling of HTTP/1.1 "Via:" headers. # ("Full" adds the server version; "Block" removes all outgoing […]

找不到文件时redirect到默认图像

在iOS应用程序中,我将Apple Game Center用户的小型化身上传到networking服务器,然后上传到/ios-avatars/ dir。 但有些玩家没有任何图片。 通过使用Apache mod_rewrite是否可以将“找不到”请求redirect到像/ios-avatars/GC123456789.png这样的文件到/images/default.png ?

'找不到'在nginx和php-fpm中的确切path

有时在configurationnginx和php-fpm时,我得到消息“找不到文件”。 我知道这是由于错误的参数SCRIPT_FILENAME,例如: fastcgi_param SCRIPT_FILENAME /some/path$fastcgi_script_name; 我不知道是否有一种方法来获得确切的完整path的文件,这是不能find的php-fpm? 我的php5-fpm.log没有任何内容,但是: [06-Jan-2014 11:14:33] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful [06-Jan-2014 11:27:01] NOTICE: configuration file /etc/php5/fpm/php-fpm.conf test is successful 我已经尝试将php-fpm.conf中的log_level选项更改为error和debug ,但结果保持不变 PS这一行: add_header X-My-Header /some/path$fastcgi_script_name; 不会这样做,因为add_header只能用于成功的响应,正如我在这里阅读的 有nginx模块 ,即使有失败响应也可以设置头文件,但我认为它应该是一个更简单的方法来获取文件path。 谢谢。

Nginxconfiguration不能在子目录中使用wordpress

我有一个nginx安装,我需要在开发中托pipe网站,以便其他人可以testing出来。 现在,我已经为单个子域设置了一个虚拟主机,并且在这个目录中,我需要打开一个符号链接项目,以便testing。 正如你所看到的,我限制了访问整个网站,但启用了特定的目录,但保持私有一个简单的auth_basic。 PHP的运行,但我一直得到的东西除了/或/ wp-admin /之外的其他东西,所有其他永久链接给404s。 我已经做了所有的事情来完成这个工作,但我不知道我做错了什么。 请在下列configuration中指出我的错误: server { listen 80; server_name dev.example.com; client_max_body_size 20m; server_tokens off; root /srv/dev.example.com; index index.php index.html index.htm; location / { deny all; } location /my-site { allow all; try_files $uri $uri/ /index.php?$args; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/auth.d/.htpasswd-my-site; location ~ \.php$ { include fastcgi_params; fastcgi_index index.php; fastcgi_pass php5-fpm-sock; fastcgi_param SCRIPT_FILENAME […]

Apache的mod_rewrite无法正常工作

我通过它的Windows安装程序安装了Apache,然后安装了PHP和MySQL。 WordPress的工作正常,这意味着所需的基本设置工作正常。 但不知何故mod_rewriting是行不通的,即使我已经从httpd.conf取消了LoadModule ….. mod_rewrite注释。 每当我去我的localhost一些固定链接,我只是得到一个404(基于浏览器,而不是基于WordPress)。 请build议我需要做的改变。