gpt4 book ai didi

erlang - Nginx 反向代理到自定义 Mochiweb 应用程序

转载 作者:行者123 更新时间:2023-12-02 02:25:14 24 4
gpt4 key购买 nike

我有 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 时我在浏览器上看不到响应。浏览器只是显示“正在等待本地主机”。每当用户连接到 mymochiserver 时,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 函数来发送数据。如果我删除休眠代码,一切都会正常,并且我会在浏览器中看到输出。但如果我 hibernate 的话,它就不起作用了。知道出了什么问题吗?

最佳答案

已修复!

引用:http://timanovsky.wordpress.com/2009/01/09/toward-a-million-user-long-poll-http-application-nginx-erlang-mochiweb/

我必须关闭代理缓冲并增加 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 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1006400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com