NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
解决办法:
在nginx中的对应的反向代理配置如下内容,即可解决:
1 | proxy_buffer_size 1024k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 |
错误原因分析:
1.nginx配置缓存区设置过小
2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件
3.磁盘空间不足
经过验证是第一种原因(nginx配置缓冲区设置过小)
问:nginx的缓冲区作用是什么?
答:如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就直接发到客户端,十分浪费性能。
有了缓冲区,积累到一定量,再传输到客户端,减少了Tcp请求。
相反,客户端到nginx速度慢,nginx到服务器速度快,没有缓冲区,
nginx到服务器的连接就会一直保持在那边,直到客户端接受完毕。
有了缓冲区,返回内容放到缓冲区后,nginx到服务器的连接就能断开了,客户端从缓冲区拉取即可。
参考解决办法:
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)解决办法
nginx unknown directive stream解决办法
nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。比如在内网有一个mysql服务,想暴露到公网上去使用,就可以通过nginx代理的方式通过nginx来进行内网mysql的访问。
首先用nginx -V 查看有没有安装这个模块,(yum安装的默认都有这个模块)然后用find查看下库文件路径,不同的操作系统位置不同。
1 | find / -name "ngx_stream_module.so" |
如果没有找到,执行
1 | yum -y install nginx-all-modules.noarch |
在nginx头部加入
1 | load_module /usr/lib64/nginx/modules/ngx_stream_module.so; |
测试环境用nginx代理mysql tcp端口示例
1 | stream { |
Upstream SSL - peer closed connection in SSL handshake
- Change your upstream to use the IP
1 | upstream webshop_domain_be { |
- And then change your
proxy_passblock to
1 | location / { |
- If the above doesn't work then add
proxy_ssl_server_name on;also to the config
reload操作时出现nginx: [alert] kill(24971, 15) failed (3: No such process)
使用netstat -tunllp查出具体pid
1 | [root@VM_1_172_centos orange]# netstat -tunllp|grep nginx |
找到logs/nginx.pid文件, 将里面的pid值修改为4481
重新reload
nginx/openresty could not be resolved (3: Host not found)
一. 在nginx的配置中, proxy_pass引用了变量,在Nginx0.6.18以后的版本都会有这样的错误
proxy_pass http://$subdomain;
解决
// 增加DNS解析地扯,局域网解析可设置自己的DNS解析服务器地扯
resolver 8.8.8.8;
proxy_pass http://$subdomain;
二. k8s中使用openresty或者nginx, 不识别service name
参见
