<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    ivaneeo's blog

    自由的力量,自由的生活。

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks

    #

    Using HAProxy to make SSH and SSL available on the same port

    Certain places firewall TCP ports other than the most common ports. There are many techniques for bypassing such restrictions. One simple approach is to run a SSH daemon on port 443, however a downside of this is you need to dedicate an IP address to this SSH service.

    There is quite a neat technique for making SSH and SSL share a port; in the SSL protocol clients should write first, whereas in SSH the server should write first; therefore by waiting to see if the client writes data it is possible to make a guess as to if the client is an SSL client or a SSH client.

    I'm not the first person to think this up, Net::Proxy has a script called sslh and confusingly there is also a C implementation also called sslh.

    I recently switched my web server to use HAProxy to allow me some more flexiblity in how I configure things (especially now the development version has keepalive support). While reading the (incredibly detailed) documentation I noticed it should be able to do the sslh technique.

    Doing this needs the (currently) in development HAProxy 1.4 (support was added for content switching TCP as well as HTTP in this commit -- thanks to Cyril Bonté on the mailing list for confirming that).

    The configuration looks something like the following (global section omitted, you'll want to run it as a user other than root and chroot it if you actually use this).

    defaults

      timeout connect 5s

      timeout client 50s

      timeout server 20s


    listen ssl :443

      tcp-request inspect-delay 2s

      acl is_ssl req_ssl_ver 2:3.1

      tcp-request content accept if is_ssl

      use_backend ssh if !is_ssl

      server www-ssl :444

      timeout client 2h


    backend ssh

      mode tcp

      server ssh :22

      timeout server 2h



    This listens on port 443, forwards it to port 444 (where the actual SSL web server is listening) unless it is not SSLv2, SSLv3 or TLSv1 traffic, in which case it forwards it to the ssh backend listening on port 22.

    Obviously as I said earlier this is only a guess that is subject to network conditions such as packet loss. I'm not recommending you use this technique on a production site, but for a low traffic machine where you want to run both protocols it is very useful. (By increasing the timeout for SSH you increase the chances of a correct result, but also add a potentially annoying delay).

    Sometimes layer 7 filtering techniques are in use and just listening on port 443 is not enough. In this case you can use SSH inside SSL.

    posted @ 2014-03-19 01:53 ivaneeo 閱讀(1298) | 評論 (0)編輯 收藏

    http://blog.sina.com.cn/s/blog_6b8fc5470101fi4b.html
    posted @ 2014-03-14 00:31 ivaneeo 閱讀(253) | 評論 (0)編輯 收藏

    dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)


    已解決: cd/var/lib/dpkg
    sudo mv info info.bak
    sudo mkdir info
    posted @ 2014-03-12 19:00 ivaneeo 閱讀(1839) | 評論 (0)編輯 收藏

    # this config needs haproxy-1.1.28 or haproxy-1.2.1
    global
            log 127.0.0.1   local0
            log 127.0.0.1   local1 notice
            #log loghost    local0 info
            maxconn 4096
            tune.bufsize 20480
            tune.maxrewrite 2048
            #chroot /usr/share/haproxy
            user haproxy
            group haproxy
            daemon
            #debug
            #quiet
    defaults
        log global
        mode tcp
        option tcplog
        option dontlognull
        option tcp-smart-accept
        option tcp-smart-connect
        #option dontlog-normal
        retries 3
        option redispatch
        timeout connect 1h
        timeout client  1h  
        timeout server  1h
        maxconn 40000
        option redispatch
    listen rabbitmq_cluster 0.0.0.0:5672
           mode tcp
           maxconn 2000
           balance roundrobin
           server   rabbit1 172.20.21.1:5672 check inter 2000 rise 2 fall 3
           server   rabbit2 172.20.21.2:5672 check inter 2000 rise 2 fall 3
           server   rabbit3 172.20.21.3:5672 check inter 2000 rise 2 fall 3
    listen  mariadb_cluster
            bind 0.0.0.0:3306
            mode tcp       
    #option tcpka
            option mysql-check user haproxy #mysql....  root.mysql.....
            #balance leastconn           #....
            balance roundrobin
            server mysql1 172.20.21.1:3306 weight 1 check  inter 1s rise 2 fall 2
            server mysql2 172.20.21.2:3306 weight 1 check  inter 1s rise 2 fall 2
            server mysql3 172.20.21.3:3306 weight 1 check  inter 1s rise 2 fall 2
    listen ssdb_cluster 0.0.0.0:8888
           mode tcp
           maxconn 2000
           balance roundrobin
           server   ssdb1 172.20.21.1:8888 check inter 2000 rise 2 fall 3
           server   ssdb2 172.20.21.2:8888 check inter 2000 rise 2 fall 3
    listen 49 0.0.0.0:3389
           mode tcp
           maxconn 2000
           balance source
           option tcpka
           server   49 172.20.0.49:3389 check inter 2000 rise 2 fall 3
    listen stats :1936
        mode http
        stats enable
        stats hide-version
        stats realm Haproxy\ Statistics
        stats uri /
        stats auth admin:admin
    posted @ 2014-03-11 15:22 ivaneeo 閱讀(309) | 評論 (0)編輯 收藏

    https://github.com/foursquare/heapaudit
    posted @ 2014-03-11 14:45 ivaneeo 閱讀(348) | 評論 (0)編輯 收藏

         摘要: Install MariaDB Galera Cluster in Ubuntuby SECAGUY on 2 JULY 2013 · LEAVE A COMMENTI am going to show you on how to install MariaDB Cluster (with Galera) in Ubuntu Precis...  閱讀全文
    posted @ 2014-03-02 00:26 ivaneeo 閱讀(527) | 評論 (0)編輯 收藏

    http://www.wangzhongyuan.com/archives/351.html
    posted @ 2014-02-20 23:02 ivaneeo 閱讀(185) | 評論 (0)編輯 收藏

    如何殺死僵尸進程呢?

    一般僵尸進程很難直接kill掉,不過您可以kill僵尸爸爸。父進程死后,僵尸進程成為”孤兒進程”,過繼給1號進程init,init始終會負責清理僵尸進程.它產生的所有僵尸進程也跟著消失。

    ps -e -o ppid,stat | grep Z | cut -d” ” -f2 | xargs kill -9

    kill -HUP `ps -A -ostat,ppid | grep -e ’^[Zz]‘ | awk ’{print $2}’`

    當然您可以自己編寫更好的shell腳本,歡迎與大家分享。

    另外子進程死后,會發送SIGCHLD信號給父進程,父進程收到此信號后,執行waitpid()函數為子進程收尸。就是基于這樣的原理:就算父進 程沒有調用wait,內核也會向它發送SIGCHLD消息,而此時,盡管對它的默認處理是忽略,如果想響應這個消息,可以設置一個處理函數。

    posted @ 2014-02-20 19:49 ivaneeo 閱讀(582) | 評論 (0)編輯 收藏


      Druid DBCP C3P0 JBoss Weblogic BonCP
    數據庫用戶名稱 Username Username User user-name    
    數據庫密碼 Password Password Password password    
    驅動名稱 DriverClassName DriverClassName DriverClass driver-class DriverName  
    JDBC連接串 Url Url JdbcUrl connection-url Url  
    JDBC連接屬性 Properties Properties Properties connection-property Properties  
    初始化大小 InitialSize InitialSize InitialPoolSize   Initial Capacity  
    連接池最小空閑 MinIdle MinIdle MinPoolSize min-pool-size    
    連接池最大空閑 MaxIdle MaxIdle MaxPoolSize max-pool-size    
    連接池最大使用連接數量 MaxActive MaxActive     MaximumCapacity  
    最小逐出時間 MinEvictableIdleTimeMillis MinEvictableIdleTimeMillis        
    最多等待線程 MaxWaitThreadCount MaxWaitThreadCount     HighestNumWaiters  
    連接池增長步長     AcquireIncrement   CapacityIncrement  
    獲取連接時測試是否有效 TestOnBorrow TestOnBorrow TestConnectionOnCheckout      
    歸還連接時是否測試有效 TestOnReturn TestOnReturn TestConnectionOnCheckin   TestConnectionsOnReserve  
    測試有效用的SQL Query ValidationQuery ValidationQuery PreferredTestQuery      
    測試有效的超時時間 ValidationQueryTimeout ValidationQueryTimeout        
    連接初始化SQL ConnectionInitSqls ConnectionInitSqls     InitSQL  
    連接最大存活實現     MaxConnectionAge      
    連接泄漏的超時時間 RemoveAbandonedTimeout RemoveAbandonedTimeout UnreturnedConnectionTimeout      
    關閉泄漏的連接時打印堆棧信息 LogAbandoned LogAbandoned DebugUnreturnedConnectionStackTraces      
    逐出連接的檢測時間間隔 TimeBetweenEvictionRunsMillis TimeBetweenEvictionRunsMillis     ShrinkFrequencySeconds  
    Statement緩存算法         StatementCacheType  
    Statement緩存大小         StatementCacheSize  
              TestTableName  
              SecondsToTrustAnIdlePoolConnection  
              ConnectionCreationRetryFrequencySeconds  
              LoginDelaySeconds  
              Profile Connection Usage  
              Profile Connection Reservation Wait  
              Profile Connection Leak  
              Profile Connection Reservation Failed  
              Profile Statement Cache Entry  
              Profile Statement Usage  
              Profile Connection Last Usage  
              Profile Connection Multithreaded Usage  
              Profile Harvest Frequency Seconds  
    連接池擴展 Filters       DriverInterceptor  
              CredentialMappingEnabled  
              InactiveConnectionTimeoutSeconds  
              ConnectionReserveTimeoutSeconds  
      QueryTimeout       StatementTimeout  
    連接池關閉時對正在使用連接的處理方式         IgnoreInUseConnectionsEnabled  
    把連接放到ThreadLocal中         PinnedToThread  
    關閉“贓”連接(調用過getVendorConnection方法)         RemoveInfectedConnections  
    posted @ 2013-12-26 16:02 ivaneeo 閱讀(1037) | 評論 (0)編輯 收藏

    現在網站發展的趨勢對網絡負載均衡的使用是隨著網站規模的提升根據不同的階段來使用不同的技術:

    一種是通過硬件來進行進行,常見的硬件有比較昂貴的NetScaler、F5、Radware和Array等商用的負載均衡器,它的優點就是有專業的維護團隊來對這些服務進行維護、缺點就是花銷太大,所以對于規模較小的網絡服務來說暫時還沒有需要使用;另外一種就是類似于LVS/HAProxy、Nginx的基于Linux的開源免費的負載均衡軟件策略,這些都是通過軟件級別來實現,所以費用非常低廉,所以我個也比較推薦大家采用第二種方案來實施自己網站的負載均衡需求。

    近期朋友劉鑫(紫雨荷雪)的項目成功上線了,PV達到了億級/日的訪問量,最前端用的是HAProxy+Keepalived雙機作的負載均衡器 /反向代理,整個網站非常穩定;這讓我更堅定了以前跟老男孩前輩聊的關于網站架構比較合理設計的架構方案:即Nginx /HAProxy+Keepalived作Web最前端的負載均衡器,后端的MySQL數據庫架構采用一主多從,讀寫分離的方式,采用LVS+Keepalived的方式。

    在這里我也有一點要跟大家申明下:很多朋友擔心軟件級別的負載均衡在高并發流量沖擊下的穩定情況,事實是我們通過成功上線的許多網站發現,它們的穩 定性也是非常好的,宕機的可能性微乎其微,所以我現在做的項目,基本上沒考慮服務級別的高可用了。相信大家對這些軟件級別的負載均衡軟件都已經有了很深的 的認識,下面我就它們的特點和適用場合分別說明下。

    LVS:使用集群技術和Linux操作系統實現一個高性能、高可用的服務器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感謝章文嵩博士為我們提供如此強大實用的開源軟件。

    LVS的特點是:

    1. 抗負載能力強、是工作在網絡4層之上僅作分發之用,沒有流量的產生,這個特點也決定了它在負載均衡軟件里的性能最強的;
    2. 配置性比較低,這是一個缺點也是一個優點,因為沒有可太多配置的東西,所以并不需要太多接觸,大大減少了人為出錯的幾率;
    3. 工作穩定,自身有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived;
    4. 無流量,保證了均衡器IO的性能不會收到大流量的影響;
    5. 應用范圍比較廣,可以對所有應用做負載均衡;
    6. 軟件本身不支持正則處理,不能做動靜分離,這個就比較遺憾了;其實現在許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優勢所在。
    7. 如果是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較復雜了,特別后面有Windows Server應用的機器的話,如果實施及配置還有維護過程就比較復雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。站長教學網 eduyo.com

    Nginx的特點是:

    1. 工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構,它的正則規則比HAProxy更為強大和靈活,這也是許多朋友喜歡它的原因之一;
    2. Nginx對網絡的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢所在;
    3. Nginx安裝和配置比較簡單,測試起來比較方便;
    4. 也可以承擔高的負載壓力且穩定,一般能支撐超過幾萬次的并發量;
    5. Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url來檢測;
    6. Nginx僅能支持http和Email,這樣就在適用范圍上面小很多,這個它的弱勢;
    7. Nginx不僅僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web應用服務器。LNMP現在也是非常流行的web架構,大有和以前最流行的LAMP架構分庭抗爭之勢,在高流量的環境中也有很好的效果。
    8. Nginx現在作為Web反向加速緩存越來越成熟了,很多朋友都已在生產環境下投入生產了,而且反映效果不錯,速度比傳統的Squid服務器更快,有興趣的朋友可以考慮用其作為反向代理加速器。

    HAProxy的特點是:

    1. HAProxy是支持虛擬主機的,以前有朋友說這個不支持虛擬主機,我這里特此更正一下。
    2. 能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
    3. 支持url檢測后端的服務器出問題的檢測會有很好的幫助。
    4. 它跟LVS一樣,本身僅僅就只是一款負載均衡軟件;單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度,在并發處理上也是優于Nginx的。
    5. HAProxy可以對Mysql讀進行負載均衡,對后端的MySQL節點進行檢測和負載均衡,不過在后端的MySQL slaves數量超過10臺時性能不如LVS,所以我向大家推薦LVS+Keepalived。
    6. HAProxy的算法現在也越來越多了,具體有如下8種:
      ① roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的;
      ② static-rr,表示根據權重,建議關注;
      ③ leastconn,表示最少連接者先處理,建議關注;
      ④ source,表示根據請求源IP,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法,建議關注;
      ⑤ ri,表示根據請求的URI;
      ⑥ rl_param,表示根據請求的URl參數'balance url_param' requires an URL parameter name;
      ⑦ hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;
      ⑧ rdp-cookie(name),表示根據據cookie(name)來鎖定并哈希每一次TCP請求。

     

     

    Nginx和LVS作對比的結果

    1、Nginx工作在網絡的7層,所以它可以針對http應用本身來做分流策略,比如針對域名、目錄結構等,相比之下LVS并不具備這樣的功能,所 以 Nginx單憑這點可利用的場合就遠多于LVS了;但Nginx有用的這些功能使其可調整度要高于LVS,所以經常要去觸碰觸碰,由LVS的第2條優點 看,觸碰多了,人為出問題的幾率也就會大。
    2、Nginx對網絡的依賴較小,理論上只要ping得通,網頁訪問正常,Nginx就能連得通,Nginx同時還能區分內外網,如果是同時擁有內外網的 節點,就相當于單機擁有了備份線路;LVS就比較依賴于網絡環境,目前來看服務器在同一網段內并且LVS使用direct方式分流,效果較能得到保證。另 外注意,LVS需要向托管商至少申請多一個ip來做Visual IP,貌似是不能用本身的IP來做VIP的。要做好LVS管理員,確實得跟進學習很多有關網絡通信方面的知識,就不再是一個HTTP那么簡單了。站長教學網 eduyo.com
    3、Nginx安裝和配置比較簡單,測試起來也很方便,因為它基本能把錯誤用日志打印出來。LVS的安裝和配置、測試就要花比較長的時間了,因為同上所述,LVS對網絡依賴比較大,很多時候不能配置成功都是因為網絡問題而不是配置問題,出了問題要解決也相應的會麻煩得多。
    4、Nginx也同樣能承受很高負載且穩定,但負載度和穩定度差LVS還有幾個等級:Nginx處理所有流量所以受限于機器IO和配置;本身的bug也還是難以避免的;Nginx沒有現成的雙機熱備方案,所以跑在單機上還是風險較大,單機上的事情全都很難說。
    5、Nginx可以檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節點。目前LVS中 ldirectd也能支持針對服務器內部的情況來監控,但LVS的原理使其不能重發請求。重發請求這點,譬如用戶正在上傳一個文件,而處理該上傳的節點剛 好在上傳過程中出現故障,Nginx會把上傳切到另一臺服務器重新處理,而LVS就直接斷掉了,如果是上傳一個很大的文件或者很重要的文件的話,用戶可能 會因此而惱火。
    6、Nginx對請求的異步處理可以幫助節點服務器減輕負載,假如使用apache直接對外服務,那么出現很多的窄帶鏈接時apache服務器將會占用大 量內存而不能釋放,使用多一個Nginx做apache代理的話,這些窄帶鏈接會被Nginx擋住,apache上就不會堆積過多的請求,這樣就減少了相 當多的內存占用。這點使用squid也有相同的作用,即使squid本身配置為不緩存,對apache還是有很大幫助的。LVS沒有這些功能,也就無法能 比較。
    7、Nginx能支持http和email(email的功能估計比較少人用),LVS所支持的應用在這點上會比Nginx更多。在使用上,一般最前端所 采取的策略應是LVS,也就是DNS的指向應為LVS均衡器,LVS的優點令它非常適合做這個任務。重要的ip地址,最好交由LVS托管,比如數據庫的 ip、webservice服務器的ip等等,這些ip地址隨著時間推移,使用面會越來越大,如果更換ip則故障會接踵而至。所以將這些重要ip交給 LVS托管是最為穩妥的,這樣做的唯一缺點是需要的VIP數量會比較多。Nginx可作為LVS節點機器使用,一是可以利用Nginx的功能,二是可以利 用Nginx的性能。當然這一層面也可以直接使用squid,squid的功能方面就比Nginx弱不少了,性能上也有所遜色于Nginx。Nginx也 可作為中層代理使用,這一層面Nginx基本上無對手,唯一可以撼動Nginx的就只有lighttpd了,不過lighttpd目前還沒有能做到 Nginx完全的功能,配置也不那么清晰易讀。另外,中層代理的IP也是重要的,所以中層代理也擁有一個VIP和LVS是最完美的方案了。具體的應用還得 具體分析,如果是比較小的網站(日PV<1000萬),用Nginx就完全可以了,如果機器也不少,可以用DNS輪詢,LVS所耗費的機器還是比較 多的;大型網站或者重要的服務,機器不發愁的時候,要多多考慮利用LVS

    posted @ 2013-12-25 12:34 ivaneeo 閱讀(6562) | 評論 (0)編輯 收藏

    僅列出標題
    共67頁: First 上一頁 5 6 7 8 9 10 11 12 13 下一頁 Last 
    主站蜘蛛池模板: 男女啪啪永久免费观看网站| 亚洲视频在线免费看| 日本高清免费中文字幕不卡| 亚洲精品综合在线影院| 成人奭片免费观看| 亚洲乱色伦图片区小说| 国产高清免费观看| 亚洲6080yy久久无码产自国产| 日韩视频免费在线| 四虎国产精品成人免费久久| 亚洲一级片内射网站在线观看| 99精品免费视频| 亚洲视频在线不卡| 日韩av无码成人无码免费| 亚洲国产成人手机在线观看| 国产zzjjzzjj视频全免费| h在线看免费视频网站男男| 国产AV无码专区亚洲AV毛网站| 高清一区二区三区免费视频| 亚洲精品第一国产综合精品| 成年人视频在线观看免费| 福利片免费一区二区三区| 国产亚洲AV手机在线观看| 午夜精品射精入后重之免费观看 | 亚洲午夜成人精品无码色欲| 免费网站看v片在线香蕉| 免费国产va视频永久在线观看| 亚洲中文字幕无码日韩| 亚洲高清视频免费| 国产精品亚洲综合天堂夜夜| 亚洲成色WWW久久网站| 97免费人妻无码视频| 免费的黄色网页在线免费观看| 亚洲AV无码第一区二区三区 | 久久久久亚洲国产| 中文字幕亚洲综合久久男男| 亚洲成人免费电影| 污网站在线观看免费| 亚洲欧洲精品国产区| 亚洲日韩在线中文字幕第一页 | 香港特级三A毛片免费观看|