成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

tcp 的自連接問題

fevin / 579人閱讀

摘要:目前我生產(chǎn)服務(wù)器的的值是,而我應(yīng)用程序啟動的端口是,因此為了避免自連接的情況,我必須把的值修改為,修改方法為修改為加載生效參考資料

今天在生產(chǎn)系統(tǒng)上遇到一個故障,先描述下:

1、目前我的 nginx 的配置是啟動的 80 端口,然后我有一個后臺服務(wù)是啟動的 8080 端口
我使用 nginx 做的反向代理,后臺服務(wù)掛掉后會自啟動,目前遇到的問題是,后臺服務(wù)掛掉后,再自啟動的時候報錯:

Bind port 8080 error: Address already in use

nginx 的配置:

upstream test.com{
    server 127.0.0.1:8080;
}

server
  {
    listen       80;
    server_name  test.com;
    index index.html index.htm index.php;



    location / {
        proxy_pass http://test.com;
        add_header cache-control "no-cache, max-age=0";
        add_header Pragma "no-cache";
    }

然后 netstat 看:

 sudo netstat -anpto |grep 127.0.0.1
tcp        0      0 127.0.0.1:8080              127.0.0.1:8080              ESTABLISHED 3841/nginx          off (0.00/0/0)

然后疑惑的是,為什么出現(xiàn)上面的情況,經(jīng)過發(fā)個帖子 http://segmentfault.com/q/1010000002396121?_ea=74605 詢問了下,然后再自己 google 和 SF 一番,發(fā)現(xiàn)是 tcp 的自連接問題,目前 linux 是默認(rèn)允許這種情況存在的,解決這個問題的方法很簡單:

你自己的程序處理自連接的情況

修改 linux 服務(wù)器的隨機(jī)端口范圍,使得服務(wù)器綁定的端口不在隨機(jī)端口范圍內(nèi)。

你自己的程序處理自連接的情況

這個如果是自己的程序的話,那就自己寫程序處理吧,但是因為我這個是 nginx ,所以沒法修改,因此只好走第二條路了。

修改 linux 服務(wù)器的隨機(jī)端口范圍

修改服務(wù)器的 /proc/sys/net/ipv4/ip_local_port_range 里面的值。

目前我生產(chǎn)服務(wù)器的 /proc/sys/net/ipv4/ip_local_port_range 的值是 1024 65535,而我應(yīng)用程序啟動的端口是 8080,因此為了避免自連接的情況,我必須把 /proc/sys/net/ipv4/ip_local_port_range 的值修改為 8081 65535,修改方法為:

vim /etc/sysctl.conf

修改為

/proc/sys/net/ipv4/ip_local_port_range=8081 65535

加載生效

sysctl -p
參考資料

http://segmentfault.com/blog/rockybean/1190000002396411

https://realaboo.wordpress.com/2009/12/28/%E6%9C%89%E8%B6%A3%E7%9A%84-single-port-self-connection-%E7%8E%B0%E8%B1%A1/

http://blog.csdn.net/kofshower/article/details/5316580

http://in.sdo.com/?p=3044

http://blog.csdn.net/justlinux2010/article/details/20947609

http://sgros.blogspot.com/2013/08/tcp-client-self-connect.html

http://skoo.me/system/2014/10/11/self-connection/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/39105.html

相關(guān)文章

  • SMProxy,讓你的項目數(shù)據(jù)庫操作快三倍!

    摘要:一個基于協(xié)議,開發(fā)的數(shù)據(jù)庫連接池。也可以通過其自身的管理機(jī)制來監(jiān)視數(shù)據(jù)庫連接的數(shù)量使用情況等。超出最大連接數(shù)會采用協(xié)程掛起,等到有連接關(guān)閉再恢復(fù)協(xié)程繼續(xù)操作。 SMProxy GITHUB:https://github.com/louislivi/... Swoole MySQL Proxy 一個基于 MySQL 協(xié)議,Swoole 開發(fā)的MySQL數(shù)據(jù)庫連接池。 原理 將數(shù)據(jù)庫連接作...

    MartinHan 評論0 收藏0
  • 基于 Netty 的自定義幀高可靠性讀取方案

    摘要:完成客戶端服務(wù)器通信,需要基于協(xié)議之上,自定義一套簡單的通信協(xié)議,其中數(shù)據(jù)交換方式需要使用自定義幀。輸入數(shù)據(jù)處理器以下為輸入數(shù)據(jù)的第一個處理器,可以保證無論幀經(jīng)歷怎樣的粘包拆包,均可以準(zhǔn)確提取每一個自定義幀的數(shù)據(jù)部分。 「博客搬家」 原地址: 簡書 原發(fā)表時間: 2017-03-26 本文采用 Netty 這一最流行的 Java NIO 框架,作為 Java 服務(wù)器通信部分的基礎(chǔ)...

    Berwin 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<