我將 Squid 放於 Openshift 後 ...開啟網頁看到是 pchome ....這是用 Squid 做的

建立 DiY  Cartridge 後 ssh 進去 ....

依照下列方式編譯 squid 
 

cd /tmp
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.25-20170408-r14154.tar.gz
tar zxvf squid-3.5.25-20170408-r14154.tar.gz
cd squid-3.5.25-20170408-r14154
./configure --prefix=$OPENSHIFT_DATA_DIR
make -j4 & make install
cd 
rm -rf /tmp/*

 

編輯 $OPENSHIFT_DATA_DIR/etc/squid.conf

acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access allow all
http_reply_access allow all
dns_nameservers 8.8.8.8
dns_timeout 2 seconds
url_rewrite_program /var/lib/openshift/58f584bd0c1e664021000015/app-root/data/bin/rewrite.pl
http_port 127.6.101.129:8080 accel vhost
cache_dir ufs /var/lib/openshift/58f584bd0c1e664021000015/app-root/data/var/spool/squid 10240 16 256
icp_port 0
cache_mem 512 MB
cache_swap_high 95
cache_swap_low 75
cache_peer www.pchome.com parent 80 0 no-query originserver name=wpc1
cache_peer_domain wpc1 www.pchome.com.tw
cache_peer_access wpc1 allow all
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320
visible_hostname 127.6.101.129

更換你config 的 OPENSHIFT_DIY_PORT 與 OPENSHIFT_DIY_IP 及 OPENSHIFT_DATA_DIR

sed -i 's/58f584bd0c1e664021000015/'$(echo $USER)'/g' $OPENSHIFT_DATA_DIR/etc/squid.conf
sed -i 's/8080/'$(echo $OPENSHIFT_DIY_PORT)'/g' $OPENSHIFT_DATA_DIR/etc/squid.conf 
sed -i 's/127.6.101.129/'$(echo $OPENSHIFT_DIY_IP)'/g' $OPENSHIFT_DATA_DIR/etc/squid.conf
編輯 $OPENSHIFT_DATA_DIR/bin/rewrite.pl
#!/usr/bin/perl
$mirror = "www.pchome.com.tw";

$| = 1;
while (<>) {
    @line = split;
    $_ = $line[0];
    if (m/^http:\/\/((?:[a-z0-9]+\.)?squid-demo\.rhcloud\.com)\/(.*)/ &&
        $1 ne $mirror) {
        print "http://" . $mirror . "/" . $2 . "\n";
    } else {
        print $_ . "\n";
    }
}

更換 OPENSHIFT_APP 名

sed -i 's/squid-demo/'$(echo $OPENSHIFT_APP_DNS)'/g' $OPENSHIFT_DATA_DIR/bin/rewrite.pl
sed -i 's/.rhcloud.com//g' $OPENSHIFT_DATA_DIR/bin/rewrite.pl

設定 rewrite.pl 可執行

chmod +x $OPENSHIFT_DATA_DIR/bin/rewrite.pl

將現有服務停止

$OPENSHIFT_REPO_DIR/.openshift/action_hooks/stop

寫啟動服務的 script
 $OPENSHIFT_REPO_DIR/.openshift/action_hooks/start

#!/bin/bash
$OPENSHIFT_DATA_DIR/sbin/squid  -NCd1 &

寫停止服務的 script
$OPENSHIFT_REPO_DIR/.openshift/action_hooks/stop

#!/bin/bash
pkill -9 squid

建立 squid 目錄

mkdir var/spool
mkdir var/spool/squid
$OPENSHIFT_DATA_DIR/sbin/squid -z

PS : 當用 出現 500 錯誤時 改
cache_peer www.pchome.com parent 80 0 no-query originserver name=wpc1

改成 IP 

cache_peer  117.18.232.133 parent 80 0 no-query originserver name=wpc1

就正常了 ....原因不明 ...Squid 說 DNS 找不到 www.pchome.com 資料

 

正常打開 你的 DIY 網頁應該可看到 www.pchome.com.tw

 

$OPENSHIFT_DATA_DIR/bin/rewrite.pl
$OPENSHIFT_DATA_DIR/etc/squid.conf
用 sed 將www.pchome.com.tw 換成你的網址 ....

文章標籤
全站熱搜
創作者介紹
創作者 echochio 的頭像
echochio

echochio

echochio 發表在 痞客邦 留言(0) 人氣(48)