安装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’ 

'identified by’123456’;

2、修改Mysql的主配置文件

server1:

       [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

server2:

      [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