使用Squid搭建醫聯服務器在辦公網段中的代理服務和反向代理服務
Author: | zarra <zarraxx@gmail.com> |
---|---|
Version: | 0.1 |
Revision: | &LastChangedRevision& |
Contents
1 說明
隨著醫聯項目的深入進行,越來越多的應用需要使用到醫聯網絡和服務。但是原來是只將醫聯和內部業務網絡連接,而現在辦公網絡也急需醫聯應用。為了解決此問題,同時也考慮到安全和使用方便的問題,參照申康的建議,提出了使用代理服務的解決方案。
2 CentOS 5.3系統安裝和設置
2.1 安裝:
[TODO]不多說。。。。。。。。。。
2.2 網絡設置:
兩塊網卡,一塊連接業務網絡,能訪問醫聯服務器,IP:190.1.57.13。另一塊,連接辦公網,因為要代理兩臺醫聯服務器,為了能做到反向代理,綁定了兩個IP:10.10.70.33;10.10.70.34。同時設置了必要的路由,具體配置文件如下:
[zarra@localhost sysconfig]$ cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=localhost.localdomain GATEWAY=190.1.57.240[zarra@localhost network-scripts]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth0 BOOTPROTO=static HWADDR=00:50:56:A1:2A:5A ONBOOT=yes IPADDR=190.1.57.13 NETMASK=255.255.255.0 TYPE=Enternet GATEWAY=190.1.57.240[zarra@localhost network-scripts]$ cat /etc/sysconfig/network-scripts/ifcfg-eth1 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth1 BOOTPROTO=static HWADDR=00:50:56:A1:74:EB ONBOOT=yes IPADDR=10.10.70.33 NETMASK=255.255.255.0 TYPE=Ethernet #GATEWAY=10.10.70.240[zarra@localhost network-scripts]$ cat /etc/sysconfig/network-scripts/ifcfg-eth1:0 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] DEVICE="eth1:0" BOOTPROTO=static HWADDR=00:50:56:A1:74:EB ONBOOT=yes IPADDR=10.10.70.34 NETMASK=255.255.255.0 TYPE=Ethernet #GATEWAY=10.10.70.240[zarra@localhost network-scripts]$ cat /etc/sysconfig/network-scripts/route-eth1 10.10.71.0/24 via 10.10.70.240 dev eth1 10.10.74.0/24 via 10.10.70.240 dev eth1 203.95.1.1/32 via 10.10.70.240 dev eth1 202.96.199.133/32 via 10.10.70.240 dev eth1 208.67.222.222/32 via 10.10.70.240 dev eth1 208.67.220.220/32 via 10.10.70.240 dev eth1
3 Squid配置說明:
Squid是*nix系統下強大的http緩存工具,一般用來提供代理和反向代理。本應用的配置文件如下:
[zarra@localhost ~]$ sudo cat /etc/squid/squid.conf #反向代理端口80,代理端口3128 http_port 80 vhost visible_hostname 10.10.70.33 http_port 3128 cache_peer 10.141.222.10 parent 7001 0 no-query originserver weight=1 name=a cache_peer 10.141.222.19 parent 7001 0 no-query originserver weight=1 name=b #將對10.10.70.33的請求 accel到下一個cache_peer “a” #即可理解為將對10.10.70.33的url請求重定向到10.141.222.10 #通過以下兩行設置達到,訪問10.10.70.33或10.10.70.34,如同訪問10.141.222.10或10.141.222.19的效果 cache_peer_domain a 10.10.70.33 cache_peer_domain b 10.10.70.34 #設置cache 256MB空間,一級目錄16個,二級目錄256個 cache_dir ufs /var/spool/squid 256 16 256 #定義網絡環境 acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl manager proto cache_object acl to_localhost dst 127.0.0.0/8 acl out_networks src 10.10.71.0/24 10.10.74.0/24 acl out_dest dst 10.141.222.0/24 10.10.70.0/24 #允許的端口 acl Safe_ports port 80 acl Safe_ports port 7001 #允許本地管理 http_access allow manager localhost http_access deny manager #不允許為定義的端口 http_access deny !Safe_ports #為了防止被用做通用Proxy,只允許代理醫聯網段 http_access deny !out_dest #允許使用代理的策略 http_access allow localhost http_access allow out_networks http_access deny all #允許使用反向代理的策略 cache_peer_access a allow out_networks cache_peer_access b allow out_networks