Nginx使用ngx_zeromq模块返回502错误的解决方法
来源:互联网 发布:du(仅限数据连接) 编辑:程序博客网 时间:2024/06/06 05:16
/********************************************************************* * Author : Samson * Date : 06/23/2015 * Test platform: * gcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2 * GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu) * Nginx version: * Nginx 1.6.2 * Nginx 1.8.0 * *******************************************************************/
当使用了ngx_zeromq模块在nginx中,使用以下命令进行编译安装:
./configure --with-debug --add-module=./zeromq_module/ngx_zeromq/ --with-http_ssl_module
开启一个zero_mq的ZMQ_REP模式的服务端程序,那么在web中输入http://127.0.0.1/时,返回502页面,再查看默认编译安装目录/usr/local/nginx/logs/error.log日志中,可以看到以下的错误导致的:
2015/06/22 23:46:28 [alert] 43143#0: *1 connect() failed (88: Socket operation on non-socket) while connecting to upstream, client: 127.0.0.1, server: , request: "GET / HTTP/1.1", upstream: "http://tcp://127.0.0.1:5555/", host: "127.0.0.1"
找到此行错误的代码所在文件为:
src/http/ngx_http_upstream.c中的ngx_http_upstream_test_connect函数中,原来是由于getsockopt造成的,那么如何解决这个问题呢?
经过自己写zeromq的REQ和REP模式的方法后,同样使用zeromq创建的连接的socketfd来使用getsockopt来进行使用,也会出现这样的错误,但是这并没有影响zeromq本身的通信,那也即是说nginx中的upstream模块中的getsockopt这个方法出错了对于zeromq来说无关紧要,那么将ngx_http_upstream_test_connect函数直接返回NGX_OK即可解决这个问题,再进行安装测试即可正常看到页面了。
REF:
ngx_zeromq模块:
https://github.com/FRiCKLE/ngx_zeromq
测试ngx_zeromq工程:
https://github.com/jamesmarlowe/ngx-zmq-sample
- Nginx使用ngx_zeromq模块返回502错误的解决方法
- Nginx 502 和504错误的解决方法
- nginx的几个错误解决方法
- nginx后端服务器返回给nginx502、504、404、执行超时等错误状态的解决方法
- 使用Nginx+lua返回错误码并且返回自定义内容。
- Nginx 502 Bad Gateway错误的原因分析与解决方法
- Nginx 502 Bad Gateway 错误的原因及解决方法
- Nginx 502 Bad Gateway 错误的原因及解决方法
- nginx 限速模块的使用
- Nginx 499错误的原因及解决方法
- Nginx 403 Forbidden错误的解决方法
- nginx关于reload的两个错误解决方法
- nginx模块编译错误
- Nginx 502错误原因和解决方法
- Nginx 502错误原因和解决方法总结
- Nginx 502错误原因和解决方法
- [Nginx] nginx提示:500 Internal Server Error错误的解决方法
- nginx 403错误解决方法
- 串口调试助手---VB源代码
- Perl Learning 3 Subroutine
- Javascript 判断浏览器类型
- Java基础:抽象类和接口
- Xamarin.Forms系列文章(二):控件参考-页面
- Nginx使用ngx_zeromq模块返回502错误的解决方法
- C++ 成员函数返回引用,三种获取返回值的效果
- 纯函数状态
- P2P模式文件传输网络应用的开发
- 黑马程序员JAVA笔记6--集合
- 设计模式之策略模式简要分析
- tableView - 编辑模式
- Poj 3104 Drying
- HBase表重命名