[问题] Nginx的proxy_pass问题

楼主: hn12404988 (Willy)   2016-10-16 11:09:36
想要请问的问题是“Nginx的proxy_pass是不是有特定的讯息传输格式”
过程是这样:(Centos 7)
以前用Nginx来proxy,中间都有经过一层library再到我的backend
例如用spawn-fcgi,再使用fcgio.h来取得传输资讯,过程都被其他软件处理好
但最近我想要试试看,我自己写的一个小小server来直接接Nginx的proxy_pass请求
只是很单纯建立一个unix domain socket,Nginx也有权限使用
目前小server都有办法拿到Nginx传来的资讯,完整
但是使用传统的socket send(),Ngnix会“一直等”~~
等到Nginx设定的timeout时间到了,才回传讯息(send的讯息)
现在实验出两个状况
1. server send完讯息,不关闭连线,让连线保持
Nginx就会等到timeout,然后什么讯息都没送出去,client端什么都没有
2. server send完讯息,就关闭连线
Nginx等到timeout,才把讯息送给client,有讯息
所以根据以上状况,我再猜:
是不是这讯息之间的来回,有一定的handshake或其他“确定传完的”格式
请问这方面的资讯,要用什么关键字去找相关regulation呢?
还是我现在的方向错了呢?
谢谢
楼主: hn12404988 (Willy)   2016-10-16 11:20:00
补充:是browser的xmlhttprequest的POST
作者: kenduest (小州)   2016-10-16 13:08:00
自己实作 http server 吗?有处理细节流程吗?比方 http 1.0 与 1.1 连线沟通的差异
楼主: hn12404988 (Willy)   2016-10-16 13:23:00
我知道1.0和1.1,但我不知道原来我也要作这个我以为Nginx会帮我作这方面的东西,那看来差有点远其实只是很简单的accept connection,然后send回去https://github.com/hn12404988/Neural_Socketcode在neural_socket资料夹里的socket_server.cpp从80行开始看,就是简单开新thread, 在send回去
作者: kenduest (小州)   2016-10-16 13:37:00
没有实做1.1的话沟通完就需要切断连线proxy_pass 当时候 nginx 是 client, 你的程式是 server,nginx 请求就是标准方式
作者: soem (流水)   2016-10-16 13:58:00
nginx的proxy_pass是标准的http request,你要的应该不是这个
楼主: hn12404988 (Willy)   2016-10-16 14:45:00
了解了解,谢谢提醒,那我再去查其他pass方式
作者: kenduest (小州)   2016-10-16 14:57:00
楼主只是要纯 tcp proxy 还是
楼主: hn12404988 (Willy)   2016-10-16 15:54:00
对,想要Nginx单纯tcp/unix socket传送资讯就好
作者: kenduest (小州)   2016-10-16 16:36:00
nginx 可以支援,官方文件有说明不过一般是 tcp socket 非 unix domain socket您自己测试 unix:/path/file 这种语法看看,我自己没有这样用过就是
楼主: hn12404988 (Willy)   2016-10-16 17:05:00
proxy_pass要用http://unix:/path/filefastcgi_pass 可以直接 unix:/path/file谢谢你的建议,我觉得我要去看一些http传输协定的东西或是nginx有其他的_pass,我还没研究
作者: soem (流水)   2016-10-17 00:42:00
其实偷懒的作法就是用python/ruby当http server那层,再接上你的code就完成了这样XD甚至连socket都不太需要写,直接call就好
继续阅读
[问题] RTSP加密问题Bode123[问题] [email protected]

Links booklink

Contact Us: admin [ a t ] ucptt.com