青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

concentrate on c/c++ related technology

plan,refactor,daily-build, self-discipline,

  C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
  37 Posts :: 1 Stories :: 12 Comments :: 0 Trackbacks

常用鏈接

留言簿(9)

我參與的團隊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

現在nginx的版本已經到了1.9.12,不過在1.9.0的時候,就開始了對TCP代理服務器的支持。
之前也有一些早期的做法,比如就有寫了nginx_tcp_module模塊的https://github.com/yaoweibin/nginx_tcp_proxy_module,
以及nginx_stream_lua模塊的
https://github.com/openresty/stream-lua-nginx-module
本來就想著用這兩個的,后來發現已經有支持了,就先來試試看看這個了。
默認的話,nginx是沒有開啟對tcp的支持的.如果要支持的話,需要用--with-stream去指定。
我這邊只要需要三個IP,一個是nginx進程所在的機器,我這邊用192.168.1.4表示,
另外兩臺就是TCP上游業務服務器,我們分別用192.168.1.5和192.168.1.21來表示,
基于這樣的考慮是因為nginx充當tcp代理服務器后,自身也會占用一個端口。
并且從目前來說,貌似一個nginx進程也就只能listen一個端口。
我用的版本是nginx 1.9.9.
我在/usr/local/nginx/conf下面新建了nginx_stream_tcp.conf作為本次的測試。
worker_processes auto;
  2 error_log /usr/local/nginx/logs/error.log info;
  3 events {
  4     worker_connections  1024;
  5 }
  6
  7 stream {
  8     upstream loadbalance {
  9 # Specifies a load balancing method for a server group where client-server mapping is based on the hashed key value
 10         hash $remote_addr consistent;
 11 # sets the weight of the server, by default, 1.
 12         server 192.168.1.21:8001 weight=5;
 13 # by default, the parameter is set to 10 seconds.
 14         server 192.168.1.5:9001  max_fails=3 fail_timeout=30s;
 15
 16 
 17     }
 18
 19 server {
 20 # listen 8001.
 21         listen 8001;
 22 # Defines a timeout for establishing a connection with a proxied server.
 23         proxy_connect_timeout 1s;
 24 # Sets the timeout between two successive read or write operations on client or proxied server connections
 25         proxy_timeout 3s;
 26 # Sets the address of a proxied server
 27         proxy_pass loadbalance;
 28     }
 29
 30 }
這個大部分是官網支持的,所以其實我也沒有修改太多,就設置了幾個IP和端口。
在編譯好nginx后,可以用/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx_stream_tcp.conf
就可以起來了,可以通過netstat -tlnp查看是否起來,大致顯示這樣的:
tcp        0      0 0.0.0.0:8001            0.0.0.0:*               LISTEN      7744/nginx_stream_t
當然也可以通過telnet來查看。
接下來,寫個簡單的cs程序來驗證下吧.

server端:
if __name__ == '__main__':
 import socket
 import commands
 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 sock.bind(('192.168.1.21', 8001))
 sock.listen(5)
 while True:
  connection,address = sock.accept()
  print "connected by",address
  while 1:

    buf = connection.recv(1024)
    if buf != "" :
     print "connection buffer", buf
     connection.sendall(buf)
 connection.close()

client端:
if __name__ == '__main__': 
    import socket
    HOST='192.168.1.4'
    PORT=8001
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    sock.connect((HOST, PORT))
    while 1:
        cmd = raw_input("please input cmd:")
        sock.sendall(cmd)
        data = sock.recv(1024)
        print data
    sock.close()

在client向192.168.1.4發起一個TCP連接時,接下來192.168.1.4會連接到192.168.1.21,
192.168.1.21的server端會顯示, connected by ('192.168.1.4',58559)
后面的端口應該是隨機的臨時端口。
其實它的確起到了轉發作用,這個nginx進程相當于一個通用網關,如果有兩個client向nginx進程發起連接,一旦nginx那邊調度到同一個上游TCP服務器,那么只需要從NGINX進程建立一個TCP連接到上游TCP服務器即可。
之前我自己設計網關的時候,不是依賴于用戶的,而是通過靜態配置來建立連接的,比如上游邏輯服務器跟網關有連接,那都是在啟動服務器的時候,就建立起來了。
這樣有個好處就是可以省事,不過也可以采用這種方式,有玩家連接進某個上游TCP服務器才讓網關跟這個TCP服務器建立連接,否則無需處理。因為不少時候還是會有不少服務器處于空閑的.

posted on 2016-03-11 08:44 jolley 閱讀(861) 評論(0)  編輯 收藏 引用 所屬分類: nginx
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产日韩精品在线| 农村妇女精品| 国产精品老牛| 欧美一级理论性理论a| 亚洲第一毛片| 另类天堂av| 欧美伦理在线观看| 午夜视频在线观看一区二区| 国产资源精品在线观看| 榴莲视频成人在线观看| 亚洲免费一区二区| 亚洲天堂久久| 亚洲天天影视| 欧美一区二区三区免费视| 在线亚洲精品福利网址导航| 最新国产成人av网站网址麻豆 | 亚洲欧美另类在线观看| 亚洲丁香婷深爱综合| 亚洲国产成人高清精品| 亚洲国产精品电影在线观看| 亚洲国产精品久久久久久女王 | 欧美三级欧美一级| 国产精品久久久久久久一区探花| 免费在线成人av| 欧美日韩在线不卡一区| 欧美涩涩视频| 亚洲电影免费| 欧美中文字幕视频在线观看| 裸体素人女欧美日韩| 激情自拍一区| 洋洋av久久久久久久一区| 亚洲一区影院| 亚洲黄色影院| 玖玖玖国产精品| 国产免费成人在线视频| 艳女tv在线观看国产一区| 久久久精品性| 亚洲视频精选| 免费一区二区三区| 国产欧美日韩精品一区| 国内精品一区二区三区| 亚洲免费观看视频| 久久久av水蜜桃| 91久久久久久| 久久久久久久97| 欧美日韩黄视频| 亚洲第一黄色| 午夜精品亚洲| 亚洲人成免费| 久久亚洲视频| 国产欧美日韩一级| 亚洲一区二区三区精品动漫| 销魂美女一区二区三区视频在线| 蜜臀久久99精品久久久久久9 | 亚洲欧美一区二区视频| 久久国产精品99久久久久久老狼| 亚洲国产你懂的| 亚洲一区二区三区四区视频| 在线电影一区| 久久香蕉精品| 亚洲高清在线播放| 嫩草影视亚洲| 午夜亚洲视频| 国产美女精品人人做人人爽| 亚洲第一页自拍| 中国女人久久久| 欧美一区二区高清在线观看| 欧美激情视频一区二区三区免费| 国产精品亚洲产品| 久久国产精品亚洲va麻豆| 欧美一区二区大片| 亚洲高清自拍| 亚洲午夜激情在线| 亚洲电影免费在线| 亚洲午夜av| 91久久久在线| 一本色道久久88亚洲综合88| 国产精品日韩在线播放| 免费人成精品欧美精品| 女仆av观看一区| 欧美在线免费视屏| 欧美ed2k| 久热精品在线| 欧美日韩精品免费看| 久久久久久婷| 国产精品久久久久久久久搜平片 | 国产精品国产a级| 午夜精品久久久久久久久久久| 亚洲欧美综合网| 麻豆国产精品va在线观看不卡| 亚洲精美视频| 久久精品理论片| 国内揄拍国内精品少妇国语| 亚洲欧洲精品天堂一级| 国产一区二区0| 亚洲高清激情| 亚洲国产高清在线| 久久精品欧美| 久久精品国产91精品亚洲| 欧美激情视频在线免费观看 欧美视频免费一| 在线亚洲欧美专区二区| 亚洲精品乱码久久久久久久久| 亚洲大胆美女视频| 老司机午夜精品视频在线观看| 99这里只有精品| 欧美日本一区二区视频在线观看| 蜜桃视频一区| 亚洲欧美日韩一区二区三区在线观看 | 亚洲成人直播| 亚洲国产激情| 欧美人在线观看| 亚洲日本中文字幕| 亚洲一区二区欧美日韩| 欧美日韩无遮挡| 最近中文字幕mv在线一区二区三区四区| 亚洲韩国日本中文字幕| 欧美日韩高清在线一区| 亚洲免费一在线| 国产欧美一区二区三区国产幕精品| 中国av一区| 欧美成人一区二区| 欧美影院在线| 亚洲日本一区二区三区| 久久高清福利视频| 99精品欧美一区二区三区综合在线 | 一区二区亚洲欧洲国产日韩| 欧美日本网站| 欧美精品三级| 欧美国产日韩a欧美在线观看| 午夜精品视频在线观看| 日韩午夜在线观看视频| 亚洲二区视频| 亚洲欧洲日产国产网站| 久久这里只有| 欧美国产精品一区| 欧美激情成人在线视频| 中文在线资源观看视频网站免费不卡| 黑人一区二区三区四区五区| 国产精品乱人伦中文| 欧美性猛交视频| 国产日韩在线播放| 在线精品视频一区二区| 亚洲人成久久| 亚洲性人人天天夜夜摸| 亚洲美女黄色片| 亚洲影视在线播放| 午夜久久资源| 老色鬼精品视频在线观看播放| 久久在线精品| 中文亚洲字幕| 欧美xxxx在线观看| 亚洲一二三区视频在线观看| 亚洲视频一区二区在线观看| 欧美一级理论片| 欧美日韩aaaaa| 狠狠噜噜久久| 亚洲视频欧美视频| 国产精品人人做人人爽人人添| 久久全国免费视频| 久久成年人视频| 欧美日韩一级视频| 亚洲欧洲一区二区三区| 欧美一区二区成人6969| 小处雏高清一区二区三区| 欧美激情精品久久久久久免费印度| 欧美在线观看视频在线| 国产一区二区三区在线播放免费观看| 亚洲欧美一级二级三级| 欧美一二三区精品| 黄色成人在线网址| 欧美风情在线观看| 国产精品劲爆视频| 欧美区在线观看| 国产精品亚洲一区| 欧美成人激情视频免费观看| 久久免费偷拍视频| 亚洲高清自拍| 亚洲午夜精品久久| 亚洲黄色av| 亚洲在线网站| 亚洲区一区二区三区| 一区二区三区.www| 亚洲国产精品久久久久秋霞不卡| 亚洲黄色一区| 亚洲国产天堂网精品网站| 亚洲午夜未删减在线观看| 在线看片日韩| 欧美在线视频在线播放完整版免费观看 | 久久www成人_看片免费不卡| 久久蜜桃资源一区二区老牛 | 欧美sm极限捆绑bd| 久久国产精彩视频| 国产精品啊v在线| 亚洲国产成人av在线| 一区二区三区在线免费观看| 亚洲精品日韩综合观看成人91| 亚洲视频图片小说| 亚洲激情中文1区| 久久精品一区四区| 美国三级日本三级久久99|