Nginx的proxy_pass問題 - Linux

Tristan Cohan avatar
By Tristan Cohan
at 2016-10-16T11:09

Table of Contents

想要請問的問題是「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呢?

還是我現在的方向錯了呢?

謝謝

--
Tags: Linux

All Comments

Irma avatar
By Irma
at 2016-10-17T11:58
補充:是browser的xmlhttprequest的POST
Bethany avatar
By Bethany
at 2016-10-19T18:14
自己實作 http server 嗎?有處理細節流程嗎?
Eartha avatar
By Eartha
at 2016-10-20T09:13
比方 http 1.0 與 1.1 連線溝通的差異
Leila avatar
By Leila
at 2016-10-21T20:25
我知道1.0和1.1,但我不知道原來我也要作這個
Elma avatar
By Elma
at 2016-10-23T02:54
我以為Nginx會幫我作這方面的東西,那看來差有點遠
Charlie avatar
By Charlie
at 2016-10-25T15:56
其實只是很簡單的accept connection,然後send回去
Daniel avatar
By Daniel
at 2016-10-26T09:14
https://github.com/hn12404988/Neural_Socket
Edwina avatar
By Edwina
at 2016-10-27T09:13
code在neural_socket資料夾裡的socket_server.cpp
從80行開始看,就是簡單開新thread, 在send回去
Franklin avatar
By Franklin
at 2016-10-28T17:18
沒有實做1.1的話溝通完就需要切斷連線
Mary avatar
By Mary
at 2016-11-02T04:56
proxy_pass 當時候 nginx 是 client, 你的程式是 server
,nginx 請求就是標準方式
Hamiltion avatar
By Hamiltion
at 2016-11-03T12:07
nginx的proxy_pass是標準的http request,你要的應該不是這個
Emily avatar
By Emily
at 2016-11-03T20:23
了解了解,謝謝提醒,那我再去查其他pass方式
Carol avatar
By Carol
at 2016-11-04T17:46
樓主只是要純 tcp proxy 還是
Oscar avatar
By Oscar
at 2016-11-04T19:33
對,想要Nginx單純tcp/unix socket傳送資訊就好
Skylar DavisLinda avatar
By Skylar DavisLinda
at 2016-11-09T03:00
nginx 可以支援,官方文件有說明
不過一般是 tcp socket 非 unix domain socket
Yedda avatar
By Yedda
at 2016-11-11T18:41
您自己測試 unix:/path/file 這種語法看看,我自己沒有
這樣用過就是
Hamiltion avatar
By Hamiltion
at 2016-11-11T22:09
proxy_pass要用http://unix:/path/file
Kumar avatar
By Kumar
at 2016-11-14T15:43
fastcgi_pass 可以直接 unix:/path/file
謝謝你的建議,我覺得我要去看一些http傳輸協定的東西
Oliver avatar
By Oliver
at 2016-11-16T22:36
或是nginx有其他的_pass,我還沒研究
Harry avatar
By Harry
at 2016-11-17T09:35
其實偷懶的作法就是用python/ruby當http server那層,再接上
Thomas avatar
By Thomas
at 2016-11-18T21:37
你的code就完成了這樣XD
Sandy avatar
By Sandy
at 2016-11-23T16:27
甚至連socket都不太需要寫,直接call就好

Chrome@Linux mint 18 mate 久了會卡頓

Sierra Rose avatar
By Sierra Rose
at 2016-10-14T21:36
我的Chrome(非Chromium)at Linux mint Mate 18 看FB載入文章開兩三個FB tab 分頁 及開一個utube 及其他各式網頁 其中兩三個小時候 FB開始卡頓 (16G Ram了) 硬碟是3.5寸 2T SATA非SSD CPU是E1230V3 (or 31v3忘了) ...

掛載硬碟無法寫入

Kyle avatar
By Kyle
at 2016-10-14T10:49
我想請問一下 我今天有一個硬碟是用 /etc/fstab 的方式開機自動掛載 UUID=.... /mnt/sdb1 ext4 defaults 1 2 開掛載後該硬碟所掛載目錄的權限為 drwxr-xr-x. 7 abcd root 4096 2016-09-09 ...

滑鼠有驅動程式嗎?centos5

Belly avatar
By Belly
at 2016-10-12T08:46
是這樣的 因為我是幫忙人家安裝伺服器 但它的軟體只支援到centos 5 上去6以後都不支援 偏偏新進的電腦 它的插頭是一個ps/2(鍵盤滑鼠同一個洞) 然後usb2.0和3.0的插槽 問題是應該是centos 5辨識只裝了鍵盤驅動 滑鼠灌到centos 5.11最高版都沒反應 滑鼠換ps/2或usb的t ...

如何讓Dibbler server不發送DHCPv6-reply

Zenobia avatar
By Zenobia
at 2016-10-11T19:04
如題 目前在複製一個客人回報的BUG 在 DUT發送DHCPv6-solicit至Server Server回應DHCPv60-Advertise至DUT DUT發送DHCPv6-request至Server Server不會回應reply 請問有沒有方法使dibbler-server ...

作業上傳用資料夾,如何設定這樣的權限?

Susan avatar
By Susan
at 2016-10-11T18:59
大家好,我已經試出來了,來分享一下方法 功能是: 全部學生用同一個帳號 : asic Homework資料夾,裡面有lab1~lab10資料夾 做完lab後上傳到該lab的資料夾,檔名為學號+lab 上傳不能覆蓋檔案,要更名加上V2後上傳,避免覆蓋他人檔案。 不能下載任何檔案包含自己的,以免抄襲。 做法: ...