erlang – Nginx反向代理到自定义Mochiweb应用程序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了erlang – Nginx反向代理到自定义Mochiweb应用程序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2231字,纯文字阅读大概需要4分钟。
内容图文
我有Nginx作为我的前端Web服务器监听端口80.并且某些请求,我已经设置了nginx来反向代理它到我写的基于mochiweb的web服务器,监听端口8000.我的nginx配置为这看起来像这样:
location /mymochiserver {
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
现在,当我访问URL http://localhost/mymochiserver时,我在浏览器上看不到响应.浏览器只是说“等待localhost”. mymochiserver将一些跟踪打印到运行它的终端窗口,每当用户连接到它时,现在,我确实看到我打开的每个浏览器窗口的跟踪以连接此URL.但我没有看到任何我希望看到写入浏览器的输出.但是,当我直接访问URL http://127.0.0.1:8000/时,一切正常,我在浏览器上看到mymochiserver的输出.所以它直接调用时有效.但是当通过nginx反向代理时,它似乎不起作用.知道什么可能是错的吗?
更新:
在我的Mochiweb应用程序中,我有以下代码行:
Socket = Req:get(socket),
inet:setopts(Socket, [{active, once}]),
proc_lib:hibernate(?MODULE, feed, [Response, Userid, 1]);
它基本上是一个COMET应用程序,用户将连接到mymochiserver,服务器将数据推送到所有连接的客户端.如果没有数据要从服务器发送,我会暂停该过程.然后当我醒来时,我调用feed函数发送数据.如果我删除休眠代码,一切正常,我在浏览器中看到输出.但如果我做休眠,它就行不通.知道出了什么问题吗?
解决方法:
固定!
我不得不关闭代理缓冲并增加nginx中的proxy_read_timeout以使其工作.所以我的配置文件现在看起来像这样:
location /mymochiapp {
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 3600;
proxy_buffering off;
}
谢谢thomas55指出答案!
内容总结
以上是互联网集市为您收集整理的erlang – Nginx反向代理到自定义Mochiweb应用程序全部内容,希望文章能够帮你解决erlang – Nginx反向代理到自定义Mochiweb应用程序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。