Nginx를 포트 80에서 수신하는 프런트 엔드 웹 서버로 사용합니다. 특정 요청은 필자가 작성한 mochiweb 기반 웹 서버에 프록시를 역전시키기 위해 nginx를 설정했습니다 이 경우 포트 8000에서 내의 nginx 구성을 듣는 것은 다음과 같습니다Nginx 역방향 프록시를 사용자 정의 Mochiweb 응용 프로그램에
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는 사용자가 연결할 때마다 터미널 창이 실행되는 터미널 창에 일부 추적을 인쇄합니다. 그리고 지금 당장이 URL을 연결하기 위해 여는 각 브라우저 창에 대한 추적을 봅니다. 그러나 나는 브라우저에 출력되는 것을 기대하지 않는다. 하지만 URL http://127.0.0.1:8000/에 모두 직접 액세스하면 브라우저에서 mymochiserver의 결과를 볼 수 있습니다. 따라서 직접 호출 할 때 작동합니다. 하지만 nginx를 통해 역방향 프록시를 사용하면 작동하지 않는 것 같습니다. 어떤 생각이 잘못 될 수 있습니까?
업데이트 : 그것은 기본적으로 사용자가 mymochiserver에 연결하는 COMET 응용 프로그램입니다 및 서버의 모든 데이터를 밀어
Socket = Req:get(socket),
inet:setopts(Socket, [{active, once}]),
proc_lib:hibernate(?MODULE, feed, [Response, Userid, 1]);
: 내 Mochiweb 응용 프로그램에서 나는 코드 줄이 연결된 클라이언트. 서버에서 전송할 데이터가 없으면 프로세스를 최대 절전 모드로 전환합니다. 그런 다음 깨어 났을 때 피드 기능을 호출하여 데이터를 보냅니다. 최대 절전 모드 코드를 제거하면 모든 것이 잘 작동하고 브라우저에서 결과를 볼 수 있습니다. 하지만 내가 최대 절전 모드를 실행하면 작동하지 않습니다. 어떤 생각이 잘못 됐어?