ITKeyword,专注技术干货聚合推荐

注册 | 登录

讲解使用squid+nginx负载均衡实现单机跑多个squid的配置

liangjian103 分享于

2020腾讯云10周年活动,优惠非常大!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1040

2020阿里云最低价产品入口,含代金券(新老用户有优惠),
地址https://www.aliyun.com/minisite/goods

推荐:使用nginx配置多个php fastcgi负载均衡

配置还是非常简单的,充分体现了nginx的强大与配置的简单^^下面是大致的服务器结构图: 应用的最前端是一台nginx服务器,所有静态的内容都由nginx来处理,而将所

squid+nginx负载均衡实现单机跑多个squid.

如今,在大访问量的网站中,squid反向代理已经成为一种常用的缓存技术。但是,众所周知,squid本身不支持SMP,因此其原本是不支持在单台服务器同一端口(例如要反向代理web必须指定80端口)下开多个进程的。

而今多核多内存服务器已成趋势,如果单台服务器只运行一个squid反向代理跑web则显得太浪费,而根据官方意见要想运行多个squid实例,要么就指定不同的IP不同端口来实现。

而nginx是一个高性能的 HTTP 和反向代理服务器软件,运用nginx的负载均衡功能,我们就能很好的实现在同一台服务器中跑多个squid的目的,充分发挥多核大内存的作用。

具体步骤如下:

1、将N个squid安装到不同目录,并指定好多个用户以及不同的监听端口,这样便于监控时查看,例如:

   squid1:/opt/squid1 监听在127.0.0.1:8081
   squid2:/opt/squid2 监听在127.0.0.1:8082 
   squid3:/opt/squid3 监听在127.0.0.1:8083

推荐:nginx 配置轮询分流-实现负载均衡【测试通过】

     做php2年多了,一直觉得这个玩意很高深,最近总想去了解下。今天抽时间,弄了感觉这个东西没有想象的那么难弄。简单的实现,确实非常容易,但是足可以实现

2、编译并安装,配置nginx

    ./configure

nginx配置文件nginx.conf

user  www www;
worker_processes  10;
 
worker_rlimit_nofile 51200;
 
events {
        use epoll;
        worker_connections  51200;
}
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    tcp_nopush     on;
   tcp_nodelay  on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    upstream jianglb {
     server 127.0.0.1:8081;
     server 127.0.0.1:8082;
     server 127.0.0.1:8083;
 
    }
 
    #gzip  on;
 
    server {
        listen       192.168.1.3:80;
        server_name  www.jianglb.com jianglb.com ;
        access_log  logs/host.access.log  main;
 
 
        location / {
                proxy_pass        http://jianglb;
                proxy_redirect          off;
                proxy_set_header   Host             $host:80;
                proxy_set_header   X-Real-IP        $remote_addr;
                proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
 
        }
    }
}

 

这里有几个配置的注意点:

  1. 如果需要同时代理加速多个域名,而这些域名是同时做负载均衡的话,不需要分开来指定,upstream只需要一个即可,proxy_pass那里的名称能对应起来即可;
  2. proxy_set_header Host $host:80;这里最好加上端口80,因为我一开始没加80,发现nginx转发的时候squid会收到www.jianglb.com:8081这样的头信息,这明显是不对的,一次加上80会比较好。

 

推荐:Nginx安装,配置实现Tomcat负载均衡

       Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,具备占有内存少,并发能力强的特点。在高连接并发的情况下,是Apache

squid+nginx负载均衡实现单机跑多个squid. 如今,在大访问量的网站中,squid反向代理已经成为一种常用的缓存技术。但是,众所周知,squid本身不支持SMP,因此其原本是不支持在单台服务器同一端

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。