我將 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.confsed -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.plsed -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 換成你的網址 ....
