Linux网络服务--LAMP+Nginx+Squid搭建web集群

一、         项目名称

        LAMP+Nginx+Squid搭建web集群环境

二、         项目拓扑

三、         项目描述

3.1 项目环境

某部队为了满足信息化政治工作建设需要,用以丰富官兵日常生活内容,活化教育形式,更好的建设部队人文环境,准备架设部队内部的网站服务器,并申请使用军内公网IP:1.1.1.1

基于以上情况为该部提出以下解决方案。

 

3.2 实施方案

3.2.1  服务器操作系统与软件版本选择

操作系统选择RedHat企业版5.10;

Nginx选择1.2.0版本源码安装包

Squid选择系统镜像自带的版本squid-2.6.STABLE21-6.el5

Apache选择系统镜像自带的版本httpd-2.2.3-82.el5_9

PHP 选择源码包php-5.4.9

MySql代理选择官方的免安装版本mysql-proxy-0.8.3-linux-rhel5-x86-64bit

MySql选择源码包版本为mysql-5.5.13

以下是IP规划:


Server Name


Port


IP


Function


client


eth0


1.1.1.2


模拟外部网络客户端


Nginx_1


eth0


1.1.1.1


负载均衡


eth1


192.168.1.254


Squid_1


eth0


192.168.1.10


页面缓存


Squid_2


eth0


192.168.1.20


页面缓存


Web_4


eth0


192.168.1.30


提供web服务


Web_5


eth0


192.168.1.40


提供web服务


Mysql_proxy6


eth0


192.168.1.60


数据库代理,读写分离


Mysql_master7


eth0


192.168.1.70


主数据库,可读写


Mysql_slave8


eth0


192.168.1.80


从数据库


Backup_9


eth0


192.168.1.90


整个网络数据的备份

3.2.2 在名为nginx_1的服务上部署nginx,作为负载均衡器,把用户访问http://www.tarena.com的请求以轮询的方式连接到服务器squid_2和服务器squid_3.。

3.2.3 squid_2和squid_3的服务器作为页面缓存服务器,能够缓存用户访问网站服务器web_4、web_5上的网页文件。

3.2.4 服务器mysql_master7 提供mysql数据库服务,用来存储网站服务器web_4、web_5服务器的数据;数据库服务器mysql_slave8自动同步mysql_master7服务器上的所有表。

3.2.5 为了减轻数据库服务器mysql_master7的压力,在名为mysql_proxy6的主机上部署mysql代理服务。

3.2.6 backup_9服务器做数据备份服务器,备份网站服务器web_4、web_5的网页文件。       web_4服务器的网页文件备份到本机的 /backup/web_4目录下;

web_5服务器的网页文件备份到本机的 /backup/web_5目录下;

每天凌晨3点开始备份网站服务器web_4、web_5的网页文件;

同步数据时使用的用户名都是webuser密码都tarenapa55且用户有上传和下载的权限;

说明:备份的数据会越来越大,为了避免存储空间不足情况的发生,把用户上传的文件存储到backup_9服务器的LV设备里,这样可以随时对存储设备做扩容操作。backup_9备份服务器保持与源网站服务器数据一致且保存源服务器上删除的文件。

3.2.7 在backup_9服务器上部署pxe服务,为所有服务器方便快捷地安装rhel5 /rhel6 操作系统

3.2.8 为了保证数据库的冗余,在数据库服务器mysql_master7上每天23点执行备份脚本mysqlbak.sh。

脚本mysqlbak.sh的功能如下:备份每天新生成的binlog文件,把备份的文件打包并压缩到系统的/dbbak目录下;用系统日期做打包压缩文件名;然后把打包压缩的文件上传到backup_9服务器的/backup/mysqlbak目录下。

3.2.9 每周一早上7点,对服务器mysql_slave8做完整备份;备份文件存放到本地的/sdb1分区里。

3.2.10 在nginx_1服务器上编写触发更新网页文件的shell脚本。程序员新添加的网页文件能够及时的同步到2台网站服务器上。

四、         配置过程

4.1 配置网站服务

4.1.1 安装提供服务的软件包

在web_4(192.168.1.40)和web_5(192.168.1.50)上分别做如下操作:

# yum -y install httpd httpd-devel

# yum -y install php php-*.x86_64

# service httpd restart

4.1.2 修改配置文件

在web_4上写个php测试网页

[[email protected]_4 ~]# cat /var/www/html/test.php

<?php

echo"This is web_4";

?>

在web_5上写个php测试网页

[[email protected]_5 ~]# cat /var/www/html/test.php

<?php

echo"This is web_5";

?>

4.1.3 验证服务配置

[[email protected]_4 ~]# elinks --dumphttp://localhost/test.php

Thisis web_4

[[email protected]_5 ~]# elinks --dumphttp://localhost/test.php

Thisis web_5

4.2 配置squid服务

4.2.1 安装squid软件包

分别在squid_2(192.168.1.20)和squid_3(192.168.1.30)上yum安装squid和elinks,elinks作为网页测试工具。

命令如下:

# yum -y install squid

# yum -y install elinks

4.2.2 修改配置文件

squid_2上的配置:

[[email protected]_2 ~]# cd /etc/squid/

[[email protected]_2 squid]# egrep -v"^#|^$" squid.conf.default > squid.conf

[[email protected]_2~]# cat /etc/squid/squid.conf

......

http_access allow all

icp_accessallow all

http_port80 vhost

cache_peer192.168.1.40 parent 80 0 originserver

cache_peer192.168.1.50 parent 80 0 originserver

cache_dirufs /var/spool/squid 200 16 256

cache_mem150 MB

visible_hostnamesquid_2.example.com

access_log/var/log/squid/access.log squid

......

[[email protected]_2~]# service squid restart

[[email protected]_2~]# chkconfig squid on

Squid_3上的配置:

[[email protected]_3~]# yum -y install squid

[[email protected]_3~]# scp 192.168.1.20:/etc/squid/squid.conf /etc/squid/squid.conf

[[email protected]_3~]# vim /etc/squid/squid.conf

......

http_accessallow all

icp_accessallow all

http_port80 vhost

cache_peer192.168.1.40 parent 80 0 originserver

cache_peer192.168.1.50 parent 80 0 originserver

cache_dirufs /var/spool/squid 200 16 256

cache_mem150 MB

visible_hostnamesquid_3.example.com

access_log/var/log/squid/access.log squid

......

[[email protected]_3~]# service squid restart

[[email protected]_3~]# chkconfig squid on

4.2.3 验证服务配置

[[email protected]_2 ~]# elinks --dumphttp://localhost/test.php

[[email protected]_3 ~]# elinks --dumphttp://localhost/test.php

在web_4上关闭httpd服务,检查是否自动切换到web_5

[[email protected]_4 ~]# service httpd stop

[[email protected]_2 ~]# elinks --dumphttp://localhost/test.php

[[email protected]_3~]# elinks --dump http://localhost/test.php

4.3 配置nginx代理服务

4.3.1 安装提供服务的软件包

在192.168.1.254上源码安装nginx

[[email protected]_1nginx-1.2.0]# useradd  -s/sbin/nologin  -M  nginx

[[email protected]_1nginx-1.2.0]#  ./configure   \

>--prefix=/usr/local/nginx    \

>--pid-path=/usr/local/nginx/nginx.pid  \

> --user=nginx   --group=nginx \

>--with-http_ssl_module   --with-http_flv_module  \

>--with-http_stub_status_module \

>--with-http_gzip_static_module \

[[email protected]_1nginx-1.2.0]#make

[[email protected]_1nginx-1.2.0]#make   install

[[email protected]ginx_1~]# ls /usr/local/nginx/

conf  html logs  sbin

4.3.2 修改配置文件

[[email protected]_1 ~]# cat/usr/local/nginx/conf/nginx.conf

worker_processes  1;

events {

worker_connections  1024;

}

http {

include      mime.types;

default_type application/octet-stream;

sendfile      on;

keepalive_timeout  65;

upstream "webgroup" {

server 192.168.1.20:80;

server 192.168.1.30:80;

}

server {

listen       80;

server_name  www.tarena.com;

location / {

proxy_pass http://webgroup;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

}

4.3.3 验证服务配置

启动nginx服务

[[email protected]_1~]# /usr/local/nginx/sbin/nginx

访问nginx服务

[[email protected]_1~]# elinks  --dump http://localhost

Welcome tonginx!

4.4 配置数据库服务

4.4.1 安装提供服务的软件包

准备mysql运行账户:

[[email protected]_master7 ~]# useradd  -M  -u49  -s /sbin/nologin  mysql

[[email protected]_master7 ~]# tar zxfmysql-5.1.62.tar.gz

[[email protected]_master7 ~]# cd mysql-5.1.62

[[email protected]_master7 mysql-5.1.62]#./configure \

> --prefix=/usr/local/mysql \

> --with-charset=utf8 \

>--with-collation=utf8_general_ci \

>--with-extra-charset=gbk,gb2312

[[email protected]_master7 mysql-5.1.62]#make && make install

[[email protected]_master7 mysql-5.1.62]#cd /usr/local/mysql/

[[email protected]_master7 mysql]#./bin/mysql_install_db --user=mysql

调整mysql目录权限:

[[email protected]_master7 ~]#chown -R root:mysql  /usr/local/mysql/

[[email protected]_master7 ~]# chown -R mysql/usr/local/mysql/var/

mysql执行优化、添加库路径:

[[email protected]_master7 ~]# cp -f /usr/local/mysql/share/mysql/my-medium.cnf/etc/my.cnf

[[email protected]_master7 ~]# ln -sf/usr/local/mysql/bin/* /usr/bin/

[[email protected]_master7 ~]# vim/etc/ld.so.conf.d/mysql-64.conf

/usr/local/mysql/lib/mysql

[[email protected]_master7 ~]# ldconfig -v

建立mysql控制脚本:

[[email protected]_master7 ~]# cp -f/usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

[[email protected]_master7 ~]# chmod +x/etc/init.d/mysqld

[[email protected]_master7 ~]# chkconfig --addmysqld

[[email protected]_master7 ~]# chkconfig --listmysqld

mysqld          0:off   1:off  2:on    3:on    4:on   5:on    6:off

修改root登录密码

[[email protected]_master7 ~]# mysqladmin -u rootpassword tarenapa55

重启服务:

[[email protected]_master7 ~]# service mysqldrestart

MySQL manager or server PID file could not befound!       [FAILED]

Starting MySQL.                                            [  OK  ]

在mysql_salve8(192.168.1.80)上做以上同样操作。

4.4.2 修改配置文件

Master(192.168.1.70)上的配置如下:

[[email protected]_master7 ~]# vim/etc/my.cnf

[mysqld]

log-bin=master   //binlog日志名称前缀

server-id=7      //id号,必须唯一

... ...

[[email protected]_master7 ~]# servicemysqld restart

Stopping mysqld:                                          [  OK  ]

Starting mysqld:                                          [  OK  ]

[[email protected]_master7 ~]# mysql-uroot -ptarenapa55

mysql> GRANT REPLICATION SLAVEON *.* TO [email protected]"192.168.1.80" IDENTIFIED BY"tarenapa55";        //授权用户,用于slave访问

Query OK, 0 rows affected (0.00sec)

Slave(192.168.1.80)上的配置如下:

[[email protected]_salve8 ~]# mysqladmin-u root password tarenapa55

[[email protected]_salve8 ~]# vim/etc/my.cnf

[mysqld]

log-bin=slave

server_id=8

... ...

[[email protected]_salve8 ~]# servicemysqld restart

Stopping mysqld:                                          [  OK  ]

Starting mysqld:                                          [  OK  ]

[[email protected]_salve8 ~]# mysql-uroot -ptarenapa55

mysql> CHANGE MASTER TO

-> MASTER_HOST="192.168.1.70",

-> MASTER_USER="webuser",

-> MASTER_PASSWORD="tarenapa55",

-> MASTER_LOG_FILE="master.000001",

-> MASTER_LOG_POS=1;

Query OK, 0 rows affected (0.03sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.00sec)

mysql> SHOW SLAVE STATUS\G;

Slave_IO_Running: Yes       //确保为Yes才算成功

Slave_SQL_Running: Yes       //确保为Yes才算成功

4.4.3 验证服务配置

在主服务器上新建stu库:

[[email protected]_master7 ~]# mysql -uroot -ptarenapa55

mysql> CREATE DATABASE stu;

Query OK, 1 row affected (0.00 sec)

mysql> SHOW DATABASES;

+--------------------+

| Database               |

+--------------------+

| information_schema      |

| mysql                 |

| stu                   |

| test                   |

+--------------------+

4 rows in set (0.01 sec)

在从服务器上可以查看到stu库,表示主从同步正常:

[[email protected]_salve8 ~]# mysql -uroot -ptarenapa55

mysql> SHOW DATABASES;

+--------------------+

| Database               |

+--------------------+

| information_schema       |

| mysql                  |

| stu                    |

| test                    |

+--------------------+

4 rows in set (0.00 sec)

4.5 配置数据库代理服务

4.5.1 安装提供服务的软件包

[[email protected]_proxy6 ~]# tar zxfmysql-proxy-0.8.3-linux-rhel5-x86-64bit.tar.gz -C /usr/local/

[[email protected]_proxy6 ~]# cd /usr/local/

[[email protected]_proxy6 local]# mvmysql-proxy-0.8.3-linux-rhel5-x86-64bit/ mysql-proxy

[[email protected]_proxy6 local]# cdmysql-proxy/

[[email protected]_proxy6 mysql-proxy]# chmod+x share/doc/mysql-proxy/rw-splitting.lua

4.5.2 启动服务

[[email protected]_proxy6 mysql-proxy]#./bin/mysql-proxy \

> -P 192.168.1.60:3306 \            //代理的IP地址和端口

> -b 192.168.1.70:3306 \                         //进行写操作数据库的IP地址和端口

> -r 192.168.1.80:3306 \                        //进行读操作数据库的IP地址和端口

> -s rw-splitting.lua &              //指定读写分离的脚本文件

[[email protected]_proxy6 mysql-proxy]# netstat-anptu | grep :3306

tcp   0    0 192.168.1.60:3306   0.0.0.0:*       LISTEN  8872/mysql-proxy

在主服务器(192.168.1.70)上授权用户对stu库有完全读写权限:

[[email protected]_master7 ~]# mysql -uroot -ptarenapa55

mysql> GRANT ALL ON stu.* [email protected]"192.168.1.%" IDENTIFIED BY "pwd123";

Query OK, 0 rows affected (0.00 sec)

4.5.3 验证服务配置

在主服务器上的stu库新建表info

mysql> USE stu;

Database changed

mysql> CREATE TABLE info( id int(2) ,name varchar(10) );

Query OK, 0 rows affected (0.01 sec)

停掉从服务器上的从服务

mysql> STOP SLAVE;

Query OK, 0 rows affected (0.00 sec)

在主服务器上插入一条数据:

mysql> INSERT INTO info VALUES(1,"master");

Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM stu.info;

+------+--------+

| id  | name   |

+------+--------+

|   1 | master |

+------+--------+

1 row in set (0.00 sec)

在从服务器上插入一条数据,并开启从服务:

mysql> USE stu;

Database changed

mysql> INSERT INTO info VALUES(1,"slave");

Query OK, 1 row affected (0.01 sec)

mysql> START SLAVE;

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM stu.info;

+------+-------+

| id   |name  |

+------+-------+

|    1 | slave |

+------+-------+

1 row in set (0.01 sec)

在web_4上访问数据库代理192.168.1.60:

[[email protected]_proxy6~]# mysql -h192.168.1.60 -uuser02 -ppwd123

mysql> SELECT* FROM stu.info;

+------+-------+

| id   | name     |

+------+-------+

|    1 | slave      |     //看出读数据用的是从服务器

+------+-------+

1 row in set(0.00 sec)

插入数据成功:

mysql> INSERTINTO stu.info VALUES(2,"slave2");

Query OK, 1 rowaffected (0.01 sec)

当停掉主服务器上的mysql服务

mysql> SELECT* FROM stu.info;

+------+--------+

| id     |  name    |

+------+--------+

|    1  |  slave    |

+------+--------+

1 row in set(0.00 sec)

插入数据不成功

mysql> INSERTINTO stu.info VALUES(2,"slave2");

ERROR 2013(HY000): Lost connection to MySQL server during query

4.5.4 测试网站与数据库的连接

在两台网站服务器编写连接数据库服务器的测试文件

[[email protected]_4 ~]# cat /var/www/html/test.php

<?php

echo "This isweb_5....";

$links=mysql_connect("192.168.1.60","user02","pwd123");

if($links){

echo "link dbok!!!";

}

else{

echo "link dbno!!!";

}

?>

[[email protected]_4 ~]# scp /var/www/html/test.php192.168.1.50:/var/www/html/

当停掉web_4的httpd服务,可以自动连接到web_5就成功了:

[[email protected]_4 ~]# service httpd stop

Stopping httpd:                                           [  OK  ]

4.6 搭建rsync服务,实现web_4和web_5触发同步网页文件

4.6.1 安装提供服务的软件包

[[email protected]_5 ~]# yum -y install rsync

[[email protected]_5 ~]# yum -y install xinetd

[[email protected]_5 ~]# service xinetd restart

Stopping xinetd:                                          [FAILED]

Starting xinetd:                                           [  OK  ]

[[email protected]_5 ~]# chkconfig xinetd on

[[email protected]_5 ~]# chkconfig rsync on

[[email protected]_4 ~]# tar zxfinotify-tools-3.14.tar.gz

[[email protected]_4 ~]# cd inotify-tools-3.14

[[email protected]_4 inotify-tools-3.14]# ./configure

[[email protected]_4 inotify-tools-3.14]# make&& make install

4.6.2 修改配置文件

[[email protected]_5 ~]# vim /etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = yes

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

[web]

path = /var/www/html

comment = Apache sync

read only = no

dont compress = *.gz *.bz2 *.tgz *.zip

[[email protected]_4 ~]# vim /root/ruser.pass

[[email protected]_4 ~]# chmod 600 /root/ruser.pass

4.6.3 测试

[[email protected]_4 ~]# inotifywait  -mrq -e modify,move,create,delete,attrib /var/www/html | while read X Y Z ; dorsync -avz --password-file=pass.txt /var/www/html/ [email protected]::web&>/etc/null; done &

[[email protected]_4 ~]# ls /var/www/html

index.html test.php

[[email protected]_5 ~]# ls /var/www/html

index.html test.php

[[email protected]_4 ~]# touch /var/www/html/123.html

[[email protected]_4 ~]# ls /var/www/html/

123.html index.html  test.php

[[email protected]_5 ~]# ls /var/www/html/

123.html index.html  test.php

验证成功后让命令开机在后台执行

[[email protected]_4 ~]# vim /etc/rc.local

......

/usr/local/bin/inotifywait -mrq  -e modify,move,create,delete,attrib /var/www/html | while read X Y Z ; do/usr/bin/rsync -avz --password-file=pass.txt --delete /var/www/html/[email protected]::web &>/etc/null; done &

4.7 将数据备份到backup_9

4.7.1 备份网页文件

[[email protected]_9 ~]# yum -y install rsync

建立同步账号文件

[[email protected]_9 ~]# vim/etc/rsyncd_users.db

webuser:tarenapa55

建立 /etc/rsyncd.conf 共享设置

[[email protected]_9 ~]# chmod 600/etc/rsyncd_users.db

[[email protected]_9 ~]# vim /etc/rsyncd.conf

uid = nobody

gid = nobody

use chroot = yes

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

[web4]

path = /backup/server4

comment = Rsync web4

read only = no

dont compress = *.gz *.bz2 *.tgz *.zip

auth users = webuser

secrets file = /etc/rsyncd_users.db

[web5]

path = /backup/server5

comment = Rsync web5

read only = no

dont compress = *.gz *.bz2 *.tgz *.zip

auth users = webuser

secrets file = /etc/rsyncd_users.db

给backup_9划分个逻辑卷,并且挂载到/backup

[[email protected]_9 ~]# mkdir -m 777 /backup

[[email protected]_9 ~]# mount /dev/vgdata/lvdata /backup/

[[email protected]_9 ~]# mkdir -p -m 777/backup/server{4,5}

启用 rsync  --daemon 服务

[[email protected]_9 ~]# yum -y install xinetd

[[email protected]_9 ~]# chkconfig rsync on

[[email protected]_9 ~]# chkconfig xinetd on

[[email protected]_9 ~]# service xinetd restart

在web4(192.168.1.50)和web5(192.168.1.50)分别做如下从操作

# vim /root/sync.pass  //存放同步时的密码

tarenapa55

# chmod 600 /root/sync.pass

# crontab -e      //编辑周期性任务

00 3 * * * /usr/bin/rsync -avz --delete--password-file=/root/sync.pass /var/www/html/ [email protected]::web4&>/dev/null

[[email protected]_4 ~]# chkconfig crond on

4.7.2 备份数据库文件

[[email protected]_9~]# mkdir -m 777 /backup/mysqlbak

[[email protected]_9~]# vim /etc/rsyncd.conf

......

[mysql]

path = /backup/mysqlbak

comment = Rsync mysql

read only = no

dont compress = *.gz *.bz2 *.tgz *.zip

auth users = webuser

secrets file = /etc/rsyncd_users.db

[[email protected]_master7~]# echo "tareanapa55" >/root/sync.pass

[[email protected]_master7~]# chmod 600 /root/sync.pass

[[email protected]_master7~]# vim /root/mysqlbak.sh

#!/bin/bash

dbdir=/var/lib/mysql

index=`grep"log-bin" /etc/my.cnf | awk -F"=" ‘{print $2}‘`

bindir=/binlogdir

tardir=/dbbak

if [ ! -d$bindir ];then

mkdir $bindir

fi

if [ ! -d$tardir ];then

mkdir $tardir

fi

lastname=`tail-1 $dbdir/$index.index | awk -F"/" ‘{print $2}‘`

for i in `cat$dbdir/$index.index`

do

logname=`echo $i | awk -F"/"‘{print $2}‘`

cd $dbdir

if [ -e $bindir/$logname ];then

continue

else

if [ $logname != $lastname ];then

cp $logname $bindir

fi

fi

done

tar zcf/dbbak/`date +%Y%m%d`.tgz  $tardir/

rsync -az--password-file=/root/sync.pass /dbbak/ [email protected]::mysql

[[email protected]_master7~]# crontab -e

00 23 * * */bin/bash /root/mysqlbak.sh

五、         项目总结

项目缺陷:

1. Nginx和mysql代理容易出现单点故障,只要nginx和mysql代理任意一台宕机,web服务不能正常访问

2. 两台mysql服务器只做了主从,一旦主服务器宕机,就不能写入数据,只能读数据。可换成互为主从的架构。

时间: 2024-10-24 03:54:20

Linux网络服务--LAMP+Nginx+Squid搭建web集群的相关文章

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务

Linux下使用Apache的Httpd+Mod_jk+Tomcat搭建Web集群服务 目的 ?? 使用多个tomcat服务器来对请求进行分流,防止单个服务器压力过重.这里为了简单,只使用两个tomcat. 软件 apache httpd-2.2.31(下载地址:https://httpd.apache.org/download.cgi) apache tomcat-7.0.69(下载地址:https://tomcat.apache.org/download-70.cgi) tomcat-con

Haproxy搭建web集群

Haproxy搭建web集群重点内容1:1.四层负载均衡:1)DNS轮询:将同一个域名解析为多个不同的ip地址实现负载均衡.2)Nginx负载均衡:通过定义upstream 组名 {server ip:port weight=权重;-}后端服务,然后通过proxy_pass http://组名实现负载均衡.3)LVS负载均衡:通过ipvsadm定义VIP(集群IP)和real server(后端服务器)调用linux内核(kernel)模块ip_vs实现负载均衡.2.haproxy负载均衡:通过

了解Linux运维要用到的web集群架构知识

了解Linux运维要用到的web集群架构知识 在充斥着各种的互联网+的数字时代,IT运维方面也越来越趋于Linux系统的应用,掌握 Linux 运维技术已成为IT 技术人员的必经之路,但是,构建在Linux系统上的高性能.高并发企业级网站集群架构上的网站集群架构,又会涉及到哪些具体的内容呢? 1.需要学习与Linux 相关的基础且重要的知识 Linux 的历史沿革.Linux 的企业级选型.学习环境的搭建.Linux 的企业级系统安装.Linux 系统的基础优化,以及远程连接Linux 及客户端

SaltStck 搭建Web集群运用示例 (二)

在上一篇文章中,我们了解了saltstack搭建Web集群的基础环境以及haproxy的部署,这里我们将想继续了解一下其他的web服务如何通过saltstack部署起来. 参考资料:https://github.com/unixhot/saltbook-code SaltStack部署keepalived 编写安装配置sls文件 在keepalived目标编写install.sls: [[email protected] /srv/salt/prod/modules/keepalived]# c

linux服务器 Haproxy搭建Web集群环境实例

操作系统:CentOS 6.5   Haproxy软件版本:haproxy-1.4.24  Nginx软件版本:nginx-1.6.2 Haproxy是目前比较流行的一种集群调度工具,之前提到Nginx的upstream模块也能实现集群的负载均衡,但是Nginx不能对节点进行健康检查,性能也没有Haproxy好 负载均衡常用的调度算法:RR(Round Robin)轮询调度.LC(Least Connections)最小连接数和SH(Source Hashing)基于来源的访问调度 案例拓扑图:

SaltStck 搭建Web集群运用示例 (一)

saltstack是一个非常强大的管理工具,使用saltstack会做到标准化的管理,下面就以一个简单的示例来更加具体的了解一下saltstack的功能特性. 使用saltstack来搭建一个简单的web集群,需要完成三个步骤: 1.系统初始化.初始化模块所有的机器环境一致. 2.功能模块:设置单独的目录haproxy nginx  php mysql  memcached. 功能模块做到尽可能的全,独立. 3.业务模块:根据业务类型划分,如web服务.论坛bbs等 Base基础环境的配置 sa

linux企业常用服务---部署Nginx+Tomcat负载均衡集群

部署前准备: iptables和selinux不做配置,关掉 系统光盘作为yum源,配置yum文件 源码包准备jdk-7u65-linux-x64.gz apache-tomcat-7.0.54.tar.gz 注意源码包存放位置要与脚本中相互对应 环境介绍: 一台nginx,两台tomcat 分别在后端tomcat1和tomcat2上配置: [[email protected] ~]# vi install_tomcat.sh #!/bin/bash ##by linuxfan ########

使用Haproxy搭建web集群

环境: 代理haproxy:192.168.100.155 后台nginx:192.168.100.153-154 1.安装nginx服务器:(192.168.100.153) yum -y install pcre-devel zlib-devel wgetftp://ftp.linuxfan.cn/tools/nginx-1.6.0.tar.gz tar zxvf nginx-1.6.0.tar.gz -C /usr/src/ cd /usr/src/nginx-1.6.0 useradd

SaltStck 搭建Web集群-Job 管理

在SaltStack默认的工作模式中,minion端会将数据直接返回给mysql数据库,这个过程中不需要master参与.由于提供更加灵活的管理,也可以在master端保存minion端的执行结果(job cache),master 端默认的保存地址是: /var/cache/salt/master/jobs. job cache 在master端的配置文件中有对应的配置参数: #cachedir: /var/cache/salt/master   保存的路径 #keep_jobs: 24