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
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;
}
}
}
这里有几个配置的注意点:
- 如果需要同时代理加速多个域名,而这些域名是同时做负载均衡的话,不需要分开来指定,upstream只需要一个即可,proxy_pass那里的名称能对应起来即可;
-
proxy_set_header Host $host:80;这里最好加上端口80,因为我一开始没加80,发现nginx转发的时候squid会收到www.jianglb.com:8081这样的头信息,这明显是不对的,一次加上80会比较好。
分享到:
相关推荐
2. **代理功能**:Squid可以作为客户端和服务器之间的代理,实现对后端服务器的负载均衡,可以结合Nginx共同构建更复杂的负载均衡体系。 **Nginx+Squid联合使用** 结合Nginx和Squid的优点,可以构建一个高效的负载...
Linux CentOS下搭建DNS+squid+nginx+mysql高可用web服务器.zip
在构建高性能、高可用性的Web服务架构中,`LVS(负载均衡服务器)`、`Keepalived`、`Squid`(代理缓存服务器)和`Nginx`(反向代理服务器)是四个非常关键的组件。下面将详细介绍这四个技术及其相互配合的工作原理。 1. *...
在这个场景中,"squid"和"nginx"都是流行的开源软件,它们可以被配置为正向代理来转发请求到API接口。下面我们将深入探讨这两个工具以及如何配置它们。 首先,让我们了解一下 Squid。Squid 是一个高性能的代理缓存...
本文将详细介绍如何通过组合使用Nginx、Apache、MySQL、PHP、Memcached以及Squid来实现这一目标。 #### 二、整体架构设计 在设计服务器架构时,我们采用了如下所示的架构: ``` |客户端|===>|负载均衡器 (Nginx)|...
总之,Nginx和HAProxy都是通过配置实现七层负载均衡的重要工具。它们都具有良好的性能和灵活性,能够根据应用的具体需求,将客户端的请求高效地分发到后端服务器,从而提高整体的系统性能和可用性。在具体实施时,...
它能处理静态资源(如图片、CSS 和 JavaScript 文件),减少对后端应用服务器的压力,并实现负载均衡,将请求分散到多个 Tomcat 实例上。 2. Memcached:这是一个分布式内存对象缓存系统,用于存储经常访问的数据,...
在集群中,Nginx通常作为前端的负载均衡器,通过正向代理策略分发请求到后端的Apache服务器,可以实现高效地处理大量并发请求,提高系统响应速度。 2. **Apache**:Apache是最流行的Web服务器之一,支持多种编程...
Nginx+Squid负载均衡 配置好的集群 总共三十个文档">Apache+Tomcat+Session+Memcache 高性能群集搭建 J2EE性能调优 Jboss的优化配置 Memcached分布式缓存 Nginx+Tomcat 动静分离 Nginx+tomcat集群Memcached+Session...
本文将详细讲解如何使用Squid进行反向代理配置,通过提供的文件名,我们可以看到有四种不同的配置场景:单站点代理、多站点代理、以及两种实现Web站点负载均衡的方法(sibling形式和常规方式)。 1. **单站点代理**...
【搭建集群Web环境详解】...然而,实际应用中可能还需要考虑更多因素,如安全配置、负载均衡策略、故障切换机制等,以保证系统的健壮性和可扩展性。不断学习和优化,才能让我们的Web服务更好地应对不断增长的用户需求。
【Nginx + Tomcat 负载均衡缓存服务器集群】 在面对高访问量和复杂业务需求时,构建一个高效的服务器集群是必要的。...对于更深入的 Nginx 缓存配置和使用,可以参考张宴的博客或 Nginx 中文网站获取更多信息。
Nginx、LVS 及 HAProxy 是目前使用最广泛的三种负载均衡软件,每种软件都有其特点和优缺点。 Nginx 的优点: 1. 工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略。 2. 对网络稳定性的依赖非常小,理论...
以下是一个简单的 Nginx 负载均衡配置实例,展示了如何使用 `ip_hash` 策略: ``` http { upstream myproject { ip_hash; server 125.219.42.4 fail_timeout=60s; server 172.31.2.183; } server { listen ...
nginx和squid配合搭建的web服务器
【标题】"nginx+squid广州技术沙龙资料2009"揭示了2009年在广州举办的一场关于使用Nginx与Squid构建高效Web服务的技术交流活动。这次沙龙聚焦于如何通过这两种开源软件提升服务器性能,优化网络流量,并实现负载均衡...
在Nginx中,负载均衡的实现是通过配置反向代理模块来完成的。Nginx作为一款高效的Web服务器和反向代理服务器,其负载均衡策略主要包括轮询(默认)、weight(权重)、ip_hash、fair(第三方)、url_hash(第三方)等...