redis和memcache比较像的,memcache可以实现服务器的集群,redis肯定也是可以的。下面在一台机,实现redis主从复制。
在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态。所以本文就根据这种情况给出三种不同的方法来解决这个问题:
以前用ha,lvs做过负载均衡,我知道apache可以做负载均衡,一直没有做。所以今天我尝试用apache做了一次负载均衡。感觉还可以,以后如果有公司非要让我用apache来做负载均衡,也不要花很多时间去研究了。
一,查看有没有安装过mod_proxy之类的东西
[zhangy@BlackGhost ~]$ /usr/local/apache2/bin/httpd -l
如果没有发现mod_proxy,我们就到apache安装目录下的modules里面看看有没有mod_proxy.so文件,如果都没有,则说明没有加载负载均衡的模块
二,安装mod_proxy,proxy_balancer_module等
一,什么是haproxy
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
二,安装haproxy
下载列表地址http://haproxy.1wt.eu
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.8.tar.gz
一,mysql proxy是什么,干什么用的
MySQL Proxy就是这么一个中间层代理,简单的说,MySQL Proxy就是一个连接池,负责将前台应用的连接请求转发给后台的数据库,并且通过使用lua脚本,可以实现复杂的连接控制和过滤,从而实现读写分离和负 载平衡。对于应用来说,MySQL Proxy是完全透明的,应用则只需要连接到MySQL Proxy的监听端口即可。当然,这样proxy机器可能成为单点失效,但完全可以使用多个proxy机器做为冗余,在应用服务器的连接池配置中配置到多 个proxy的连接参数即可。
要使php程序利用fastdfs上传文件,要做到以下几点
wget http://fastdfs.googlecode.com/files/fastdfs_client_php_v1.6.tar.gz
一,安装php的fastdfs扩展
cd /home/zhangy/FastDFS/php_client #/home/zhangy/FastDFS 这个目录是fastdfs服务器源,解压目录
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
一,fastdfs是什么
FastDFS是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
二,安装
wget http://fastdfs.googlecode.com/files/FastDFS_v1.22.tar.gz
tar zxf FastDFS_v1.22.tar.gz
cd FastDFS
./make.sh
mkdir /usr/local/include #一般情况下,local下面会有一个include文件夹的,如果没有在建个目录
./make.sh install
一,memcache分布式的解释
memcache分布式,说白一点就是在很多台机子上装memcache,同时使用他们。
二,启动多个memcached进程,可以在一台机子上,可以在多台机子上
/usr/local/bin/memcached -d -m 20 -u zhangy -p 12000 -P ./memcached.pid
/usr/local/bin/memcached -d -m 20 -u zhangy -p 13000 -P ./mem.pid
我在同一台机子上,启动了二个memcached进程
[zhangy@BlackGhost drochilli]$ ps -e |grep memcache
17904 ? 00:00:00 memcached
17906 ? 00:00:00 memcached
表明已经启动了二个进程