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

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

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

    jinfeng_wang

    G-G-S,D-D-U!

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
     
      [文章作者:張宴 本文版本:v1.0 最后修改:2007.08.21 轉載請注明出處:http://blog.s135.com]

      我這兩天在工作中遇到了一些問題,在今天下午全部解決,于是決定寫一篇文章,將實現方法記錄下來:

      一、背景環境:
      1、都是Linux服務器;
      2、“服務器A”與“服務器C”不在同一網絡,兩者之間是不通的;
      3、“服務器A”、“服務器C”分別與“服務器B”相通。

      二、要實現的需求:
      1、讓“服務器A”上的PHP程序能夠連接“服務器C”上的MySQL數據庫(IP:10.10.1.4,端口:3306);
      2、不允許在“服務器A”上的PHP程序中更改MySQL地址(10.10.1.4)和MySQL端口(3306)。

      三、實現原理:
      理論上從“服務器A”是無法直接連接“服務器C”的IP地址(10.10.1.4)及其3306端口的【圖中的虛線】,但通過“IP別名+TCP轉發+端口映射”,我在“服務器A”上的PHP程序無須作任何修改的情況下實現了這項功能【圖中的實線】。
      訪問路線:“服務器A”上的PHP程序─→虛擬10.10.1.4:3306─→192.168.1.3:8520─→真實10.10.1.4:3306

      點擊在新窗口中瀏覽此圖片

      四、實現方法:
      1、修改“服務器A”上的Apache配置文件httpd.conf(以下僅列出要修改的部分,其余部分用......表示):
    引用
    ................
    Listen 192.168.1.2:80
    ................
    NameVirtualHost 192.168.1.2:80
    <VirtualHost 192.168.1.2:80>
    ................

      然后重啟Apache:
      /usr/local/apache/bin/httpd -k restart

      2、在“服務器A”上創建本地回環設備lo(即127.0.0.1)的IP別名10.10.1.4,即虛擬IP:
      『圖中的①』
      /sbin/ifconfig lo:0 10.10.1.4 broadcast 10.10.1.4 netmask 255.255.255.255 up
      /sbin/route add -host 10.10.1.4 dev lo:0


      3、在“服務器A”上編譯安裝TCP轉發軟件rinetd(官方網站:http://www.boutell.com/rinetd/),將對10.10.1.4:80的TCP請求重定向到192.168.1.3:8520上:
      『圖中的②』
      wget http://www.boutell.com/rinetd/http/rinetd.tar.gz
      tar zxvf rinetd.tar.gz
      cd rinetd
      make && make install
      vi /etc/rinetd.conf

      輸入以下內容(格式:源地址 源端口 目標地址 目標端口):
    引用
    10.10.1.4 80 192.168.1.3 8520

      啟動rinetd守護進程
      /usr/sbin/rinetd -c /etc/rinetd.conf

      4、在“服務器B”上利用iptables配置端口映射,將自身的8520端口映射到10.10.1.4的3306端口上:
      『圖中的③』
      echo "1"> /proc/sys/net/ipv4/ip_forward
      /sbin/iptables -t nat -A PREROUTING -p tcp -s 192.168.1.0/24 -d
    192.168.1.3 --dport 8520 -j DNAT --to-destination 10.10.1.4:3306
      /sbin/iptables -t nat -A POSTROUTING -p tcp -s 192.168.1.0/24 -d 10.10.1.4 --dport 3306 -j SNAT --to-source 10.10.1.3

      為了防止服務器重啟導致TCP轉發失效,請:
      vi /etc/rc.local
      增加一行:
    引用
    echo "1"> /proc/sys/net/ipv4/ip_forward


      或者:
      vi /etc/sysctl.conf
      增加一行:
    引用
    net.ipv4.ip_forward = 1

      /sbin/sysctl -p
    posted on 2010-04-14 15:17 jinfeng_wang 閱讀(1567) 評論(0)  編輯  收藏 所屬分類: ZZ
    主站蜘蛛池模板: 成人爽A毛片免费看| 国产无遮挡又黄又爽免费视频| 日韩a级毛片免费视频| 久久综合亚洲色HEZYO国产| 亚洲色av性色在线观无码| 亚洲成在人线在线播放无码| 国产免费一级高清淫曰本片| 成年人网站免费视频| 亚洲福利精品一区二区三区| 亚洲综合久久综合激情久久| 国产AV无码专区亚洲AV麻豆丫| 可以免费观看的毛片| 精品国产免费观看| 亚洲一区二区成人| 免费一级做a爰片久久毛片潮| 免费黄色福利视频| 4338×亚洲全国最大色成网站| 亚洲二区在线视频| 中文字幕成人免费高清在线| 精品国产免费一区二区三区| 黄色成人网站免费无码av| 中文亚洲AV片在线观看不卡| 在线亚洲高清揄拍自拍一品区| 久久精品成人免费国产片小草| 最近中文字幕免费mv视频8| 亚洲韩国精品无码一区二区三区| 亚洲av日韩aⅴ无码色老头| 无码A级毛片免费视频内谢| 亚洲国产精品嫩草影院久久 | 亚洲级αV无码毛片久久精品| 亚洲风情亚Aⅴ在线发布| 免费播放一区二区三区| 国产国产成年年人免费看片| 亚洲精品动漫在线| 久久久久久毛片免费看| 日韩免费电影在线观看| 亚洲男女性高爱潮网站| 大地影院MV在线观看视频免费 | 成人爽a毛片免费| 免费一级毛片在线播放不收费| 亚洲三级视频在线|