开发者社区> 问答> 正文

nginx tcp代理后服务端能收到客户端消息,但客户端收不到服务端返回的消息

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 https://developer.aliyun.com/article/706511 点击链接欢迎加入感兴趣的技术领域群。

nginx tcp代理后服务端能收到客户端消息,但客户端收不到服务端返回的消息。 nginx 配置如下:

stream{ upstream mqttserver{ hash $remote_addr consistent; server 127.0.0.1:55534 max_fails=1 fail_timeout=10s; } server{

listen 55533 so_keepalive=on; proxy_connect_timeout 5s; proxy_timeout 30s; proxy_pass mqttserver;

} }

展开
收起
茶什i 2019-07-31 17:56:54 3212 0
2 条回答
写回答
取消 提交回答
  • 你好,问题解决了吗?我这边也是客户端收不到服务端的响应报文,麻烦告知下原因?

    2024-11-08 15:59:44
    赞同 展开评论 打赏
  • Nginx服务器错误一般有以下几点原因: 1、请求的header过大。nginx默认的header长度上限是4k,如果超过了这个值,nginx会直接返回400错误. 解决方法:配置nginx.conf相关设置。可以通过以下2个参数来调整header上限: client_header_buffer_size 16k;large_client_header_buffers 4 16k。 2、上传文件过程中出现错误。这时浏览器显示“413 Request Entity Too Large”。这是因为没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M。 解决方法:增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制:设置允许发布内容为8M:client_max_body_size 8M;client_body_buffer_size 128k。 另外如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误:post_max_size = 8M;upload_max_filesize = 6M。 修改完配置后,别忘记重新加载。 3、客户端在为等到服务器相应返回前就关闭了客户端描述符。一般出现在客户端设置超时后,服务器主动关闭。 解决方法:根据实际Nginx后端服务器的处理时间修改客户端超时时间。 4、脚本错误(php语法错误、lua语法错误)。 解决方法:查看nginx_err_log php_err_log。 5、访问量过大,系统资源限制,不能打开过多文件。 磁盘空间不足。(access log开启可能导致磁盘满溢,服务器主动关闭)。 解决方法:修改/etc/sysctl.conf文件,并使用下面的命令确认: #sysctl -p。要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。 6、后端服务无法处理,业务中断。 解决方法:从后端日志获取错误原因,解决后端服务器问题。 7、后端服务器在超时时间内,未响应Nginx代理请求。 解决方法:根据后端服务器实际处理情况,调正后端请求超时时间。 8、网站页面缓存过大。 解决方法:配置nginx.conf相关设置:fastcgi_buffers 8 128k;send_timeout 60。 
    

    “答案来源于网络,供您参考” 希望以上信息可以帮到您!

    2019-09-27 14:11:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载