反向代理:测试

© ㄒiger / Posted in 杂七杂八 / June 21, 2012

测试反向代理..... 不停的修改折腾。杯具的事情,百度快照都没了。。。

前端:Portland,San Jose,Los Angeles,Chicago,Dallas,Fremont.....

后端 :E5506  8G  4x2T 独立服务器

面板:Directadmin

演示:现在打开的就是.... 不同IP段or不同C段....

© ㄒiger / Posted in 程序代码 / June 21, 2012

squid.conf
#
acl CactiServer src 192.168.0.119
acl snmpcommunity snmp_community public
snmp_port 3401
snmp_access allow snmpcommunity CactiServer
#这部分是为cacti的监控设置
#用snmpwalk -c public -v1 192.168.0.119:3401 .1.3.6.1.4.1.3495.1 测试是否成功
#

visible_hostname cache.lamiu.com
cache_effective_user squid
cache_effective_group squid # 启动的用户与组
cache_mgr yangting@lamiu.com
cache_dir ufs /var/cache/squid/cache/ 1024 16 128 #缓存的路径,大小为1024M 16个头目录,128个子目录
cache_mem 128 MB #内存

cache_peer www.lamiu.com parent 80 0 no-query originserver name=www
cache_peer bbs.lamiu.com parent 80 0 no-query originserver name=bbs #定义不同的父节点,将节点设为no-query以及originserver说明这些节点是实际服务器

cache_peer_domain www www.lamiu.com
cache_peer_domain bbs bbs.lamiu.com #设定不同域名转发到不同的cache_peer上,如果没有这项.不同域名的域名可能被分发到同一台服务器上.

acl all src 0.0.0.0/0.0.0.0
http_access allow all #允许所有客户端访问

cache_swap_high 100%
cache_swap_low 95% #(cache_swap_low 和cache_swap_high 指令控制了存储在磁盘上的对象的置换。它们的值是最大cache 体积的百分比,这个最大cache 体积来自于所有cache_dir 大小的总和)

maximum_object_size 1024 KB #大于此容量的对象将不会被保存在磁盘上,默认大小是4M,
maximum_object_size_in_memory 100 KB # 最大位于内存中的对象的大小,默认大小是8K,

hierarchy_stoplist cgi-bin ?
hierarchy_stoplist -i ^https:\\ ? #squid将请求标记为不可层叠,直接转发

emulate_httpd_log on #打开emulate_httpd_log选项,将使Squid仿照Aapche的日志格式
cache_store_log none #这个设置是不记录store.log
pid_filename /var/log/squid/squid.pid
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log
half_closed_clients off #半关闭状态的TCP连接,设为off,则一旦从客户端返回“no more data to read”的信息,squid就立即关闭该连接
logfile_rotate 4 #可以用logfile_rotate 0来取消自动操作

acl QUERY urlpath_regex -i cgi-bin \? \.php \.xml
acl denyssl urlpath_regex -i ^https:\\
no_cache deny QUERY
no_cache deny denyssl #不对符合QUERY,denyssl的ACL内容进行缓冲

acl localhost src 127.0.0.1/255.255.255.255
acl manager proto cache_object
acl purge method PURGE
http_access allow manager localhost #cache_object是squid的缓存管理接口,这配置行只允许本机的缓存管理请求
http_access allow purge localhost #只有本机能删除了cache目标 squidclien -m PURGE -p 80 http://www.***.com

acl FTP proto FTP
http_access deny FTP #拒绝所有的FTP请求

#refresh_pattern 指令间接的控制磁盘缓存。
#refresh_pattern [-i] regexp min percent max [options]
refresh_pattern -i \.jpg$ 30 50% 4320 reload-into-ims
refresh_pattern -i \.htm$ 0 20% 1440

#refresh_pattern 指令也有少数选项导致squid 违背HTTP 协议规范。它们如下:
override-expire
该选项导致squid在检查Expires 头部之前,先检查min 值。这样,一个非零的min 时间让squid返回一个未确认的cache 命中,即使该响应准备过期。
override-lastmod
改选项导致squid 在检查LM-factor 百分比之前先检查min 值。
reload-into-ims
该选项让squid 在确认请求里,以no-cache 指令传送一个请求。换句话说,squid 在转发请求之前,对该请求增加一个If-Modified-Since 头部。注意这点仅仅在目标有Last-Modified时间戳时才能工作。外面进来的请求保留no-cache 指令,以便它到达原始服务器。
ignore-reload
该选项导致squid 忽略请求里的任何no-cache 指令。
#squidclient -r -p 80 http://www.***.com 能Force cache to reload URL

© ㄒiger / Posted in 主机域名 / June 19, 2012

无聊贴,记录折腾记录.. ..部分可能有错误,仅供参考

lnmp一键安装包(lnmp.org)

squid 2.6.STABLE21(直接yum install squid 安装)

目的:前端squid 反向代理后端web站点以及反向代理其他外部站点

首先安装好lnmp环境,安装过程参考,http://lnmp.org/install.html 

然后安装squid

yum install squid

然后删除 /etc/squid/squid.conf

rm  /etc/squid/squid.conf

下载squid.conf配置文件 (端口80)

cd /etc/squid/
wget http://tiger.im/soft/squid.conf

假设使用8001端口做后端web访问端口 前端squid使用80端口

vi squid.conf

找到如下:

cache_peer 127.0.0.1  parent 8001 7 no-query originserver name=www1 


cache_peer_domain www1 tiger.im www.tiger.im 

127.0.0.1是反向本机后端web站点 也可以换成其他的 端口8001

cache_peer_domain www1 域名 为后端绑定的域名

如果是多站点反向代理,继续可以添加,

cache_peer 123.123.123.123 parent 8001 7 no-query originserver name=www2

cache_peer 192.168.1.1 parent 8001 7 no-query originserver name=www3

cache_peer_domain www2 ds.tiger.im www.tiger.im

cache_peer_domain www3 test.tiger.im www.tiger.im

修改完毕后,先不着急启动squid..开始修改lnmp的参数

需要修改nginx.conf 

vi /usr/local/nginx/conf/nginx.conf
server
        {
                listen       8001;

 将端口80换成8001

然后修改 vhost.sh 里面的端口为8001

server
        {
                listen       8001;
                server_name $domain$moredomainame;
                index index.html index.htm index.php default.html default.htm default.php;

这样添加域名的时候默认自动端口为8001

重启下lnmp  : 

/root/lnmp restart

启动squid

service squid start

设置开启启动squid

chkconfig --add squid
 chkconfig --level 2345 squid on

ok.....好吧,很罗嗦的写完了.

© ㄒiger / Posted in 程序代码 / January 7, 2012

lnmp一键安装包(LNMP.ORG)反向代理配置

去掉nginx.conf 最后一个 } 然后添加代码。。

server {
   listen 80;
   server_name www.tiger.im tiger.im;
 location / {
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_pass http://tiger.im;
    proxy_set_header  x-real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
    }
 }

修改/etc/hosts 里面添加后端网站IP 

123.123.123.123  tiger.im

123.123.123.123 www.tiger.im

然后去域名管理商解析域名A记录到反向代理的这台机器ip上..

© ㄒiger / Posted in 主机域名,程序代码 / November 29, 2011

AutoNProxy 是基于nginx的反向代理(v0.0.3)

http://code.google.com/p/autosetup/

wget http://autosetup.googlecode.com/files/AutoNProxy-v0.0.3.sh

chmod 755 AutoNProxy-v0.0.3.sh

./AutoNProxy-v0.0.3.sh 

修改proxy.conf 文件。重启nginx。。搞定。。

service httpd stop&&chkconfig httpd off

/usr/local/nginx/sbin/nginx -s reload 重启VPS
  • 分页: