国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

tcp 的自連接問題

fevin / 567人閱讀

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

今天在生產系統上遇到一個故障,先描述下:

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

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)

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

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

修改 linux 服務器的隨機端口范圍,使得服務器綁定的端口不在隨機端口范圍內。

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

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

修改 linux 服務器的隨機端口范圍

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

目前我生產服務器的 /proc/sys/net/ipv4/ip_local_port_range 的值是 1024 65535,而我應用程序啟動的端口是 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/

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39105.html

相關文章

  • SMProxy,讓你的項目數據庫操作快三倍!

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

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

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

    Berwin 評論0 收藏0

發表評論

0條評論

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