安装nginx+tomcat+mysql
一、系统要求:
操作系统要求为 CentOS-6.2-x64
二、服务器端软件要求:
Tomcat apache-tomcat-7.0.26.tar.gz
Jdk jdk-7u3-linux-x64.rpm
Nginx nginx-1.1.13.tar.gz
nginx_upstream nginx_upstream_jvm_route .tar.gz
Pcre pcre-8.30.tar.gz
Mysql mysql-5.5.21.tar.gz
Cmake cmake-2.8.7.tar.gz
三、应用软件安装配置(安装源文件目录统一路径为/package)
首先把nginx、jdk、tomcat、mysql的安装源文件或RPM上传到linux服务器/package下。然后分别开始安装这些服务器。
1、安装nginx:
[root@centos-one package]#tar -zxvf pcre-8.30.tar.gz
[root@centos-one package]#tar -zxvf nginx-1.1.13.tar.gz
[root@centos-one package]#tar -zxvf nginx_upstream_jvm_route.tar.gz
[root@centos-one package]#cd nginx-1.1.13.tar.gz
patch -p0 </package/nginx_upstream_jvm_route/jvm_route.patch
./configure \
--prefix=/usr/local/nginx \
--with-pcre=/package/pcre-8.30 \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--add-module=/package/nginx_upstream_jvm_route
make
make install
1.1负载均衡设置(修改nginx.conf文件):
upstream backend {
server 127.0.0.1:8081;
server x.x.x.x:8082;
修改为对应的tomcat服务器IP地址
/usr/local/nginx/sbin/nginx 启动完成
安装成功后 /opt/nginx 目录下有四个子目录分别是:
conf、html、logs、sbin 。
其中 Nginx 的配置文件存放于 conf/nginx.conf,
Nginx 只有一个程序文件位于 sbin 目录下的 nginx 文件。
确保系统的 80 端口没被其他程序占用,运行 sbin/nginx 命令来启动 Nginx,
打开浏览器访问此机器的 IP,如果浏览器出现 Welcome to nginx!
则表示 Nginx 已经安装并运行成功。
http://127.0.0.1(ip地址) 试试, welcome Nginx,就安装成功。
2、Tomcat+Jdk的安装
2.1 安装Jdk
[root@centos-one ~]#cd package
[root@centos-one package]# rpm–ivh jdk-7u3-linux-x64.rpm
//默认安装存放路径为/usr/java/ jdk1.7.0_03
2.2 设置环境变量
[root@centos-one ~]# vi /etc/profile
添加如下内容:
#set java environment variables
JAVA_HOME=/usr/java/jdk1.7.0_03
#TOMCAT_HOME=/usr/local/tomcat //在这里tomcat路径可以不进行设置
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:.
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME CLASSPATH PATH
保存退出
[root@centos-one ~]# source /etc/profile //让/etc/profile文件修改后立即生效
2.3 安装TOMCAT,只需要将TOMCAT解压缩即可
[root@centos-one package]# tar -zxvf apache-tomcat-7.0.26.tar.gz
[root@centos-one package]# mv apache-tomcat-7.0.26 /usr/local/tomcat
2.4 配置tomcat的环境变量
[root@centos-one package]# vi /usr/local/tomcat/bin/catalina.sh
添加如下内容:
export JAVA_HOME=/usr/java/jdk1.7.0_03
export JRE_HOME=/usr/java/jdk1.7.0_03
export CATALINA_BASE=/usr/local/tomcat01
export CATALINA_HOME=/usr/local/tomcat01
2.5 修改tomcat的访问端口server.xml 文件中
多tomcat实例时,需修改tomcat端口
[root@centos-one ~]# vi /usr/local/tomcat/conf/server.xml
8005,(大概在13行左右)将8005修改为没有在使用的端口号,例如8015
8009,(大概在107行左右)将8009修改为没有在使用的端口号,例如8019
8080,(大概在86行左右)将8080修改为第一个tomcat不在使用的端口号,如8081。此处所设的端口号即是以后访问web时所用的端口号。
2.6 启动及停止tomcat服务
[root@centos-one ~]# /usr/local/tomcat/bin/startup.sh
[root@centos-one ~]# /usr/local/tomcat/bin/shutdown.sh
如果多个tomcat集群,查看tomcat是否启动:
[root@centos-one ~]#ps -ef|grep tomcat01
有时候重复启动tomcat时容易出现错误,杀死tomcat进行重新启动就可以了
[root@centos-one ~]#kill -9 2177 (pid号)
3、mysql的安装
3.1安装cmake
[root@centos-one package]# tar -zxvf cmake-2.8.7.tar.gz
[root@centos-one package]# cd cmake-2.8.7
[root@centos-one cmake-2.8.7]# ./configure
[root@centos-one cmake-2.8.7]# make && make install
3.2 安装mysql
[root@centos-one package]#tar –zxvf mysql-5.5.21.tar.gz
[root@centos-one package]# cd mysql-5.5.21
[root@centos-one mysql-5.5.21]# groupadd mysql
[root@centos-one mysql-5.5.21]# useradd -g mysql -s /sbin/nologin mysql
[root@centos-one mysql-5.5.21]# mkdir -p /usr/local/mysql
[root@centos-one mysql-5.5.21]# mkdir -p /usr/local/mysql/var
[root@centos-one mysql-5.5.21]# mkdir -p /usr/local/mysql/log
[root@centos-one mysql-5.5.21]# /usr/local/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/var
[root@centos-one mysql5.5.21]# make && make install
[root@centos-one mysql-5.5.21]# cd /usr/local/mysql/support-files
[root@centos-one support-files]# cp -a my-huge.cnf /etc/my.cnf
[root@centos-one support-files]# cp -a mysql.server /etc/init.d/mysqld
[root@centos-one support-files]# chmod +w /usr/local/mysql
[root@centos-one support-files]# chown -R mysql:mysql /usr/local/mysql
3.3将 mysql 加入系统服务
[root@centos-one ~]# chkconfig --add mysqld
[root@centos-one ~]# chkconfig --level 345 mysqld on
[root@centos-one ~]# chkconfig --list |grep mysqld
3.4 mysql 初始化安装
[root@centos-one ~]# /usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/var
[root@centos-one ~]# chown -R mysql:mysql /usr/local/mysql
[root@centos-one ~]# chmod +x /etc/init.d/mysqld
[root@centos-one ~]# vi /etc/init.d/mysqld
修改如下内容:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/var
3.5启动 mysql
[root@centos-one ~]# service mysqld start
Starting MySQL..[确定]
3.8 主主互备
1、主机说明:
master-A:192.168.0.161
master-B:192.168.0.162
2、授权用户
#server mysqld start
master-A&grant replicationslave,file on *.*to 'tongbu'@'192.168.0.162' identified by '123456';
master-B&grant replicationslave,fileon *.* to 'tongbu'@'192.168.0.161' identified by '123456';
3、修改my.cnf
编辑配置文件vi /etc/my.cnf 加入以下内容
log-bin=mysql-bin
server-id=1
binlog-do-db=test
binlog-ignore-db=mysql
replicate-ignore-db=mysql
replicate-do-db= test
log-slave-updates
slave-skip-errors=all
sync-binlog=1 #每作一次操作同步一次
auto-increment-increment=2
auto-increment-offset=1
备注:另一台 server-id=2;auto-increment-offset=2
binlog-do-db=test 修改需要同步的数据库名
4、查看同步的起始文件
master-A>show master status; //获得的参数写入B中
master-B>show master status; //获得的参数写入A中
记录初始的master_log_file的文件名和position如下
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------+----------+--------------+------------------+
| mysql-bin.000019 | 11809679 | +------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
我们把file=mysql-bin.000019和position=11809679 记下来
5、用change master 语句指定同步位置
master-A&change master to master_host='192.168.7.162',master_user='tongbu', master_password='123456',master_log_file='mysqlbin.000019',master_log_pos=11809679;
master-B& change master to master_host='192.168.7.161',master_user='tongbu', master_password='123456',master_log_file='mysqlbin.000019',master_log_pos=11809679;
注意:红色部分从show master status表中获得file=mysql-bin.000019和position=11809679 两个不一定是相同的。
master-A> start slave; 启动同步
master-A> show slave status\G;
master-B> start slave;
master-B> show slave status\G;
如果之前您的同步已经开启change之前要停止同步stop slave;
根据上述命令显示结果,检查slave状态
结果如下时,同步正常启动
Slave_IO_Running:YES
Slave_SQL_Running:YES
6、检测同步是否正常完成
master-A&create tables aaa (id int);
master-B&use test;
master-B&show tables;
master-B服务器中出现aaa表时,同步完成。
3.9 、Mysql主主复制架构配置
MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器
互为主从,并且都能向外提供服务。 这就比使用主从复制具有更好的响应性能。
配置过程
server1:192.168.7.182
server2:192.168.7.181
1、创建用户并授权
server1:
mysql> grant replicationslave,file on *.* to 'tongbu'@'192.168.7.181'identified by '123456';
mysql> grant replicationslave,file on *.* TO 'server2'@'192.168.7.181'
'identified by’123456’;
server2:
mysql> grant replicationslave,file on *.* TO 'server1'@'192.168.7.182’
2、修改Mysql的主配置文件
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为2
启动Mysql服务: service mysqld restart
[mysqld]
server-id = 20
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为2
启动Mysql服务:service mysqld restart
注意:二都只有server-id和 auto-increment- offset不同auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2。
3、重新启动两个服务器
service mysqld restart
4、为了让两个数据库一样,我们备份其中一个数据库,然后在另一个数据库上恢
复,这样是两个数据库一开始都是一样的。
在server1上操作:
mysqldump --databases nange > /tmp/nange.sql