我正在尝试托管一个 .rdp 文件,该文件将在 Internet 上公开提供(当然,没有密码)。IIS 不允许我使用此文件 - 我收到 404 错误,说它找不到该文件。如果我将文件扩展名更改为 .txt,它可以正常工作。
知道我做错了什么吗?
我刚刚在 debian 上安装了 nginx,并在 nginx.conf 文件中进行了基本配置(添加服务器部分)
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
# tcp_nodelay on;
# gzip on;
# gzip_disable "MSIE [1-6]\.(?!.*SV1)";
# include /etc/nginx/conf.d/*.conf;
# include /etc/nginx/sites-enabled/*;
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root …Run Code Online (Sandbox Code Playgroud) 使用模拟 6 进行网络统计,我很惊讶地看到超过 54 天的 404 超过一百万。我正确看待这个吗?这是 404 与“200 OK”页面浏览量的异常比率吗?我在实际 URL 列表中没有看到任何 404;损坏的 URL 列表在哪里?该站点是 unix/apache 上的 html、WordPress 和 asp 页面的组合,如果这很重要的话。
Requests Status Codes
6548392 200 OK
807 206 Partial content
1830136 301 Document moved permanently
61795 302 Document found elsewhere
3091342 304 Not modified since last retrieval
3042 400 Bad request
49012 403 Access forbidden
1043694 404 Document not found
2936 500 Internal server error
411 503 Service temporarily unavailable
Run Code Online (Sandbox Code Playgroud)
一般统计:
Successful requests: 9,640,541
Average successful requests per day: …Run Code Online (Sandbox Code Playgroud) 我们有一个运行 PHP-FPM 和 NGINX 的站点。应用程序向站点成员发送邀请,这些邀请以 40 个字符的随机字符串(仅限字母数字——以下示例)为键。今天,我们第一次遇到了这种方法的问题。以下网址:
http://oursite.com/notices/response/approve/1960/OzH0pedV3rJhefFlMezDuoOQSomlUVdhJUliAhjS
Run Code Online (Sandbox Code Playgroud)
正在返回 404 错误。这种 url 格式已经使用了 6 个月没有问题,并且遵循这种确切格式的其他 url 继续正确解析。我们有一个非常基本的配置,带有一个简单的重定向到前端控制器,现在其他一切都运行良好。
另外,如果我们将最后一个字符从“S”更改为小写“s”以外的任何字符,则不会出现 404 错误并且站点会正确处理请求,所以我想知道是否有一些安全模块可能会看到某些内容这个特定的字符串有问题......不确定这是否有意义。
我们不确定在哪里寻找导致问题的具体原因,因此我们将不胜感激。
谢谢!
更新:在 url 的末尾添加一个斜杠允许它被正确处理......虽然仍然想深入了解问题。
已解决:问题是由我的部分配置引起的...意识到我应该发布,但正在出城并且没有机会。
任何以“css”或“js”结尾且不一定以点开头(因此,例如http://site.com/response/somerandomestringcss)的url 都被解释为对文件的请求,并且请求是不通过前端控制器路由。问题是我的正则表达式用于在 jpg、gif、icos 等上禁用日志记录和设置过期标头。
我换了这个:
location ~* ^.+(jpg|jpeg|gif|css|png|js|ico)$ {
Run Code Online (Sandbox Code Playgroud)
有了这个:
location ~* \.(jpg|jpeg|gif|css|png|js|ico)$ {
Run Code Online (Sandbox Code Playgroud)
现在以 css、js、png 等结尾的 url 可以通过前端控制器正确路由。希望这可以帮助其他人。
只是想知道频率是否有任何意义。最近,我们网站的alive.txt 404 错误明显多于任何其他uri。这是某种常见的服务器日志/配置文件,还是侥幸?
我有很多热链接的图片。这很好,但由于 URL 的变化,有些不再存在。是否可以仅在请求图像且图像不存在时显示类似图像黑客“未找到图像错误”图片的内容?
现在我有 404 页,但我仍然想保留它。
我可以张贴一个简单的 jpg/gif 图片,上面写着“未找到”并仅在未找到图片时显示。
老实说我不知道从哪里开始
我的路径可以是从 /level1/ 到 /level1/..../blah/oldpicture.jpg 的任何内容,并且大多数图片由 Gallery2 使用 url_rewrite 呈现,因此它们实际上转到 php。
location / {
try_files $uri $uri /main.php?url=$1;
#rewrite ^/(.+)$ /main.php?url=$1 last;
}
Run Code Online (Sandbox Code Playgroud)
我也在 php fpm 配置部分使用它
fastcgi_intercept_errors on; # to support 404s for PHP files not found
Run Code Online (Sandbox Code Playgroud)
我可以通过编码来尝试这个,但这是第二个选择。
在 Linux Web 服务器上处理 Exchange 自动发现请求的最佳方法是什么?目前它查找 example.com/autodiscover/autodiscover.xml。由于此页面不存在,它会抛出 404。我想将 404 保持在最低限度,这样它们就不会出现在日志中。
永久重定向就足够了吗?
这是我们的 IT 正在实施的一项新服务,我希望为 Web 服务器创建最少的负载。我什至不确定为什么它必须达到顶级域并涉及 Web 服务器。但是,从我读到的内容来看,这似乎是它的设计方式。
任何帮助或见解表示赞赏。
我正在尝试在我的域的子目录中设置 Codeigniter。目前我只在索引页面上从 Codeigniter 得到 404。一旦想去,example.com/api/welcome/index我就会从 nginx 得到 404。
我的nginx.conf:
location /api/ {
alias /var/www/api/;
try_files $uri $uri/ /api/index.php =404;
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_pass backend;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Run Code Online (Sandbox Code Playgroud)
和Codeigniter.conf:
$config['base_url'] = 'https:/example.com/api/';
$config['uri_protocol'] = 'REQUEST_URI';
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud) 我有一个运行 Windows Server 2003 的本地开发服务器,它承载了一些在 IIS 6.0 上运行的应用程序。我可以很好地连接到这些应用程序,但是在未知的一段时间后它们无法访问,给我 404 错误。当我收到这些 404 错误时,我仍然可以 ping 服务器。
但是,我注意到如果我在客户端上运行ipconfig /release,ipconfig /renew连接问题就会解决。
关于这里可能发生的事情以及如何解决的任何想法?
更新 1
当我遇到连接问题时,IIS 错误日志显示s-reason是Timer_ConnectionIdle.
我有一个站点,请求特定的 JSON 文件并发现它丢失会触发对后备 JSON 文件的请求。但是,我没有为第一个文件获得 404,而是获得了 的内容index.html,这不是有效的 JSON 并产生了错误。
我将问题追溯到这个指令:
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它为404for服务mysite.com/some/nonexistent/file.json,但仍然得到index.htmlfor mysite.com/?
nginx ×5
apache-2.2 ×2
php-fpm ×2
codeigniter ×1
exchange ×1
iis ×1
iis-6 ×1
logging ×1
permissions ×1
timeout ×1
website ×1