当前位置:首页>正文

怎么让nginx返回content-length nginx什么情况下返回404

2023-04-19 18:07:15 互联网 未知

怎么让nginx返回content-length

公司服务器与手机客户端交互,客户端请求一个动态生成的XML文件,在用firebug查看http响应头的时候,有时候发现有content-length属性,有时候没有这个属性,取而代之的是Transfer-Encoding: chunked属性。由于客户端强制要求,服务器端必须返回content-length,否则,客户端将不予解析。于是测试发现,当XML文件很小的时候,是有content-length属性的,到达一个值时,就成了Tansfer-Encoding:chunked。

再引用一段话,解释一下Transfer-Encoding:chunked这个属性的意义:
通常,HTTP协议中使用Content-Length这个头来告知数据的长度。然后,在数据下行的过程中,Content-Length的方式要预先在服务器中缓存所有数据,然后所有数据再一股脑儿地发给客户端。
如果要一边产生数据,一边发给客户端,WEB 服务器就需要使用"Transfer-Encoding: chunked"这样的方式来代替Content-Length。

最后说说自己的理解与解决方式:
通过种种迹象,我得出的结论是,JSP页面有一个缓存大小,当输出数据的长度没有到达这个大小的时候,服务器是知道总的数据长度的,所以服务器会输出content-length头。但如果超过缓存大小,那么,缓存一满,服务器就得输出内容给客户端,所以,不能判断整个内容的大小,于是返回Transfer-Encoding:chunked这个头信息。
解决方式是:在JSP页面中加入代码,response.setBufferSize(402800)40820即400K,其实只要这个值大于你返回的数据的大小就行了。具体设置多少,你可以根据实际情况,合理配置。另外说一句,在page指令中加入buffer="400kb",是不管用的,我测试的情况是这样。

nginx什么情况下返回404

静态文件没有找到,如location配置有误导致nginx找不到对应的静态文件
后端服务器返回404,在做proxy server时,后端服务器返回了404,则nginx会将此响应返回到浏览器端

nginx为什么返回301重定向


在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。

linux中nginx 301重定向跳转方法总结,有需要的朋友可参考一下。

第一种情况:访问aaaaaaa站定向到bbbbbbbbbbb站

复制代码
代码如下:

server {
server_naaaaaaame
www.aaaaaaa.com
rewrite ^(.*) http://www.bbbbbbbbbbb.com$permaaaaaaanent
}

第二种情况:不是访问aaaaaaa站的全部重定向到指定页面

复制代码
代码如下:

server {
server_naaaaaaame
www.aaaaaaa.com
if ($host != ‘aaaaaaa.com )
{ rewrite ^/(.*)$
http://www.bbbbbbbbbbb.com/$1 permaaaaaaanent }}

如果写在第一个server段
使用IP访问时也将被重定向

第三种带WWW或者不带WWW之间的跳转

复制代码
代码如下:

server
{
server_naaaaaaame c.net

rewrite ^/(.*)$ http://www.c.net/$1 permaaaaaaanent
}

nginx返回502是什么原因

这篇文章主要介绍了Opcache导致php-fpm崩溃nginx返回502的解决方法,十分实用,需要的朋友可以参考下 我这个博客为了提高运行效率在vps上装了opcache扩展,结果发现有个页面返回502,其他页面正常。 检查了php-fpm日志,发现是php-fpm子进程不知道为什么会崩溃,然后把opcache关了就正常。中间折腾的过程就不提了,总之最后发现应该是和另外一个扩展 zend guard冲突导致的,搞笑的是,只要我把php.ini中[zend guard] 配置段放在[zend opcache]后面就正常了。 不想继续深究了,如果你对php底层熟悉,可以为我解惑。

nginx环境下 怎么设置对搜索引擎返回503

if ($http_user_agent ~* (baiduspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)){
return 503
}
//大概意思就是http_user_agent中,含有列出的字符就返回503。例子中是常见的搜索引擎,如百度谷歌等,看你具体情况增删,用 | 分隔。

如何配置nginx的流量限制

限制每个IP一个线程,每个线程30K/s限制;防治盗链,将盗链的URL显示为指定图片;
在171上测试通过。
下载限制的相关配置
http {
limit_zone one $binary_remote_addr 10m
server {
location /upload/ {
limit_conn one 1
limit_rate 30k
}
}
}