30 Linux中安装JDK, MySQL, tomcat, 部署nginx集群, 以及window中部署tomcat+nginx集群

1.1      Linux系统上安装JDK:

1.1.1    安装步骤:

1.1.1.1  卸载OpenJDK

执行命令查看:

rpm –qa | grep java


卸载OPENJDK:

[root@dcy /]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686

[root@dcy /]# rpm -e --nodepsjava-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686



1.1.1.1  创建JDK的安装路径:

在/usr/local/  创建文件夹java

mkdir java

1.1.1.2  上传安装文件jdk到linux:

使用day29中的软件包中的FileZilla-3.7.3软件直接点开使用.

将本地的文件复制到Linux的root环境中.


cd ~

ll   可以查看到复制到Linux 目录root下的jdk文件



1.1.1.1  解压tar.gz

首先需要安装依赖:

yum install glibc.i686    需要网络 

tar –xvf xxx.tar.gz –C /usr/local/java

解压完成后进入/usr/local/java可以看到jdk1.7.0_71的文件


1.1.1.1  配置环境变量:

vim /etc/profile   进入编辑配置环境变量,将下面的语句加到文件最后一行

       #setjava environment

       JAVA_HOME=/usr/local/java/jdk1.7.0_71

       CLASSPATH=.:$JAVA_HOME/lib.tools.jar

       PATH=$JAVA_HOME/bin:$PATH

       exportJAVA_HOME CLASSPATH PATH

黏贴上后按esc再加上冒号wq回车,完成编辑.

cd ~ 回到root目录后重新加载配置文件:

执行source/etc/profile

至此完成jdk的安装, 输入java命令检查成功否.


1.2      Linux系统上安装MySQL:

1.2.1    安装MySQL:

1.2.1.1  上传mysql到Linux:

与上传jdk方式相同拖拽进Linux即可.


1.1.1.1  卸载自带mysql:

rpm –qa | grep mysql    查看自带的mysql,把查询的名字复制到下面的语句中执行卸载.

[root@dcy ~]# rpm  –e  --nodeps  mysql-libs-5.1.73-5.el6_6.i686


总体流程:


1.1.1.1  创建mysql的安装路径:

Mkdir mysql

1.1.1.2  解压mysql:

tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar-C /usr/local/mysql

1.1.1.3  安装依赖:在线安装

yum -y install libaio.so.1 libgcc_s.so.1libstdc++.so.6

yum update libstdc++-4.4.7-4.el6.x86_64

1.1.1.4  安装mysql的服务端:

rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm

1.1.1.5  安装mysql的客户端:

rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

1.1.1.6  启动mysql的服务:

service mysql status

service mysql start

1.1.1.7  登录mysql:


产生一个随机的密码存放在/root/.mysql_secret

所以我们进到文件中复制密码:

[root@dcy~]# vim .mysql_secret

查看密码进行登录:

msyql –u root -p

修改密码:

set password = password('123456');

至此已经可以使用mysql数据库了,但是还不能远程访问mysql


1.1.1.1  设置开机自动启动mysql:

如果已经进入mysql了要exit先进到Linux目录中.再执行下面的两句

加入到系统服务:

chkconfig --add mysql

自动启动:

chkconfig mysql on

1.1.1.2  开启远程服务:

下面第一句是设置权限,第二句是刷新权限

首先登录mysql:

grant all privileges on *.* to 'root' @'%'identified by '123456';

flush privileges;

此时还是连接不上Linux的mysql,还需要处理防火墙

1.1.1.3  设置Linux的防火墙:

第一句是:将3306端口添加到防火墙放行该端口(再次启动后无法再次放行)

第二句是:将这个放行设置永久的保存到防火墙中.

/sbin/iptables -I INPUT -p tcp --dport 3306-j ACCEPT

/etc/rc.d/init.d/iptables save

奇怪的事:使用SQLyog登录Linux中的mysql数据库, 使用我改过的密码登录报错 , 但是使用123456的密码的时候就能登录上.


1.2      Linux系统上安装tomcat:

1.2.1    安装tomcat:

1.2.1.1  上传tomcat的安装文件:

也是软件工具中直接拖入root目录即可.

1.2.1.2  创建tomcat的安装路径:

进入到/usr/local 下创建文件夹

mkdir tomcat

1.2.1.3  解压tomcat

tar –xvf xxx.tar.gz –C /usr/local/tomcat

1.2.1.4  设置防火墙:

要先进到根路径下执行下面的设置命令:

cd ~   

/sbin/iptables -I INPUT -p tcp --dport 8080 -jACCEPT

/etc/rc.d/init.d/iptables save

1.2.1.5  启动tomcat:

说明:windows中执行的是bat后缀的, 但是Linux中是执行sh后缀名的脚本.

进入到tomcat/bin

执行 ./startup.sh    或者   sh startup.sh  

关闭tomcat

执行 ./shutdown.sh


1.1      发布项目到Linux:

1.1.1    将数据库还原到Linux上:

1.1.1.1  备份Window上的数据库:

方法一:

使用命令备份:

mysqldump –u root -p mystore > c:/mystore.sql

方法二:

使用可视化工具:

直接右键备份导出 , 以SQL转储….就可以生成一个sql文件.此次导出的文件名叫做mystore .

1.1.1.2  在Linux上还原数据库:

方法一:

进入数据库后先建立一个数据库,

Create database mystore ;

use mystore

source /root/mystore.sql

show tables ; 就能查看到已经将数据库导入成功.

方法二: 此外还可以在可视化SQLyog中还原数据库.

1.1.2    将程序的代码发布到Linux上:

1.1.2.1  将工程制作为war包:

1.1.2.2  将war包上传到linux服务器:

1.1.2.3  将war包copy到linux下的tomcat的webapps中:

1.1.2.4  修改配置文件就可以:

配置项目下的C3p0文件的数据库连接信息.

进入到tomcat下的webapps中的对应项目的c3p0文件

[root@dcy apache-tomcat-7.0.57]# cd webapps/

[root@dcy webapps]# ll

总用量 36344

drwxr-xr-x. 14 root root     4096 9月  28 02:24 mystore_2.0

 [root@dcywebapps]# cd mystore_2.0

[root@dcy mystore_2.0]# ll

总用量 56

drwxr-xr-x. 4 root root 4096 9月 28 02:24 WEB-INF

[root@dcy mystore_2.0]# cd WEB-INF/

[root@dcy WEB-INF]# ll

总用量 16

drwxr-xr-x. 3 root root 4096 9月 28 02:42 classes

 [root@dcyWEB-INF]# cd classes/

[root@dcy classes]# ll

总用量 16

-rw-r--r--. 1 root root  705 9月  28 02:42 c3p0-config.xml

 [root@dcyclasses]# vimc3p0-config.xml

<?xml version="1.0"encoding="UTF-8"?>

<c3p0-config>

 <default-config>

   <propertyname="driverClass">com.mysql.jdbc.Driver</property>

        <propertyname="jdbcUrl">jdbc:mysql://192.168.75.129:3306/mystore</property>

       <property name="user">root</property>

       <property name="password">123456</property>

       <property name="initialPoolSize">5</property>

       <property name="maxPoolSize">20</property>

 </default-config>

配置好之后再关闭tomcat重启tomcat生效.


1.2      Windows系统配置Nginx

1.2.1    Nginx的概述:

1.1.1    什么是代理和反向代理:

1.1.2    Nginx+Tomcat的集群配置:

1.1.2.1  在一台电脑上安装两个tomcat

需要在一台电脑模拟:在E盘解压两个tomcat,分别命名为tomcat1,tomcat2.

1.1.2.2  修改tomcat的配置文件,将端口进行修改:

修改tomcat2中conf目录下的server.xml文件中的端口:

1.将原来的关闭的端口8005端口改为8006


2.将启动的端口8080改为8081



1.1.1.1  将项目分别发布到两个tomcat中:

将项目war文件直接放到tomcat的webapps目录下就行.

1.1.1.2  安装Nginx:路径绝对不能有中文

解压

双击nginx.exe

启动完以后访问http://localhost  或者localhost:80因为80是默认端口所以可以不用输入.显示如下页面表示安装成功.否则没有.


另外可以在进程中看到有连个nginx的进程也表示安装成功了,

其中我遇到启动exe后进程中没有nginx的情况,此时用右键管理员权限启动exenginx程序就可以了.

1.1.1.1  配置Nginx:

修改nginx/conf/nginx.conf文件:


upstream server_lb{

              serverlocalhost:8080;

              serverlocalhost:8088;

       }

      

   server {

       listen       80;

       server_name  localhost;

       #charset koi8-r;

       #access_log logs/host.access.log  main;

       location / {

           root   html;

                     proxy_pass http://server_lb;

           index  index.html index.htm;

       }

以上配置完成后,

在cmd窗口中重新加载配置文件.

Nginx –s reload


此时只需要在浏览器中输入localhost就可以进入到tomcat的主页了, 而不再需要输入localhost:80.可以通过localhost/test1访问到我们的两个项目了

我遇到的问题;

问题一: nginx:[alert] could not open error log file: CreateFile() "logs/error.log"failed (5: Access is denied)

设置nginx文件夹的属性, 安全标签中设置权限为允许..fuck

问题二:nginx:[error] OpenEvent("Global\ngx_reload_9780") failed (5: Access isdenied)  干掉 nginx进程, 重新启动nginx, 然后执行重新加载配置命令.

1.1.1.1  Tomcat集群的session共享:

分布式用到session共享:不同功能模块分布在不同的服务器上,所以用户在提交数据的时候另一台机器上没有相应的session信息,所以需要session共享.

一种解决办法:一个用户进来以后只在tomcat1上进行操作,另一个用户进行只在tomcat2上进行操作.

     在配置中可以设置固定IP实现用户只在一个机器上访问 , 还可以设置服务器的权重.



2.session的共享

一种使用tomcat广播机制完成session的共享(不推荐的方式)

一种使用redis服务器的方式完成session的共享(推荐的方式)

1.1.1.1  使用tomcat的广播机制完成session的共享。(了解)

修改两个tomcat中的server.xml:


在项目中web.xml中添加一个配置:

   <distributable/>



1.1      Linux上搭建Nginx+Tomcat集群:

1.1.1    在Linux上安装多个Tomcat:

1.1.1.1  解压tomcat

分别解压tomcat到/usr/local/tomcat1 和 tomcat2

1.1.1.2  修改tomcat2中server.xml:

:配置tomcat23个端口信息 , 与在windows系统下修改的文件一样.

[root@dcy apache-tomcat-7.0.57]#  cd /usr/local/tomcat2/apache-tomcat-7.0.57/

[root@dcy apache-tomcat-7.0.57]# ll

 [root@dcy apache-tomcat-7.0.57]# cd conf

[root@dcy conf]# ll

总用量 204

-rw-------. 1 root root   6613 9月  28 02:47 server.xml

 [root@dcy conf]# vim server.xml

修改一下三行的内容:

<Server port="8008" shutdown="SHUTDOWN">

<Connector port="8088"protocol="HTTP/1.1"         原来是8080端口

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443"/>

***** 将修改后的端口添加到防火墙中.

要先进到根路径下执行下面的设置命令:

cd ~   

/sbin/iptables -I INPUT -p tcp --dport 8088-j ACCEPT

/etc/rc.d/init.d/iptables save

1.1.1.3  将项目发布到Linux中的tomcat中

通过FileZilla可视化软件将项目的war或者项目文件放到前面创建的tomcat1和tomcat2中的webapps中

修改项目下的C3p0文件的数据库连接信息.

进入到tomcat下的webapps中的对应项目的c3p0文件

[root@dcy apache-tomcat-7.0.57]# cd webapps/

[root@dcy webapps]# ll

总用量 36344

drwxr-xr-x. 14 root root     4096 9月  28 02:24 mystore_2.0

 [root@dcy webapps]# cd mystore_2.0

[root@dcy mystore_2.0]# ll

总用量 56

drwxr-xr-x. 4 root root 4096 9月 28 02:24 WEB-INF

[root@dcy mystore_2.0]# cd WEB-INF/

[root@dcy WEB-INF]# ll

总用量 16

drwxr-xr-x. 3 root root 4096 9月 28 02:42 classes

 [root@dcy WEB-INF]# cd classes/

[root@dcy classes]# ll

总用量 16

-rw-r--r--. 1 root root  705 9月  28 02:42 c3p0-config.xml

 [root@dcy classes]# vim c3p0-config.xml

<?xml version="1.0"encoding="UTF-8"?>

<c3p0-config>

 <default-config>

   <propertyname="driverClass">com.mysql.jdbc.Driver</property>

       <property name="jdbcUrl">jdbc:mysql://192.168.75.129/mystore</property>

       <property name="user">root</property>

       <property name="password">123456</property>

       <property name="initialPoolSize">5</property>

       <property name="maxPoolSize">20</property>

 </default-config>

此时就已完成了两个tomcat的项目发布.

1.1.1.4  Linux上安装Nginx:


Nginx

1.2      什么是Nginx

Nginx("engine x") 是一个高性能的 HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。


很多大网站都是使用nginx做反向代理,应用非常广泛。

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。

 

1.1.1    应用场景

1、http服务器,可以做静态网页的http服务器。

2、配置虚拟机。

一个域名可以被多个ip绑定。可以根据域名的不同吧请求转发给运行在不同端口的服务器。

3、反向代理,负载均衡。把请求转发给不同的服务器。

1.2      安装及配置

1.2.1    下载

官方网站:http://nginx.org/

最后的一个稳定版本:1.8.0版本。有两个版本windows版本和linux版本。生产环境都是使用linux版本。


1.1.1    安装

1.1.1.1  环境要求

nginx是C语言开发,建议在linux上运行,本教程使用Centos6.4作为安装环境。

n  gcc

       安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++

n  PCRE

       PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

yum install -y pcre pcre-devel

注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。

n  zlib

       zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

yum install -y zlib zlib-devel

n  openssl

       OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

       nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel

 

1.1.1.2  编译及安装

第一步:把nginx的源码包上传至linux服务器

第二步:解压源码包到指定文件夹。

[root@dcy~]# cd /usr/local/

[root@dcylocal]# mkdir nginx

[root@dcylocal]# cd ~

[root@dcy~]# tar -zxf nginx-1.8.0.tar.gz  -C/usr/local/nginx

或者tar -xvf nginx-1.8.0.tar.gz  -C /usr/local/nginx 指令也可以

第三步:进入nginx-1.8.0文件夹。使用configure命令创建makefile。

./configure

第四步:参数设置如下:

 ./configure        

--prefix=/usr/local/nginx\    使用configure没指定路径是默认解压到此路径

--pid-path=/var/run/nginx/nginx.pid\

--lock-path=/var/lock/nginx.lock\

--error-log-path=/var/log/nginx/error.log\

--http-log-path=/var/log/nginx/access.log\

--with-http_gzip_static_module\

--http-client-body-temp-path=/var/temp/nginx/client\

--http-proxy-temp-path=/var/temp/nginx/proxy\

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi\

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi\

--http-scgi-temp-path=/var/temp/nginx/scgi

注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建tempnginx目录

第五步:make

第六步 make install

然后返回nginx的路径就可以看到安装上几个路径,表示安装成功了


1.1      Nginx的启动及关闭

1.1.1   启动

在nginx目录下有一个sbin目录,sbin目录下有一个nginx可执行程序。

./nginx就可以执行启动nginx.下面我们还查看一下进程


1.1.1.1  同windows中一样我们也需要配置一下nginx.conf文件,

[root@dcy local]# cd ./nginx/nginx-1.8.0/

[root@dcy nginx-1.8.0]# ll

总用量 660

drwxr-xr-x. 2 1001 1001   4096 9月  28 03:32 conf

[root@dcy nginx-1.8.0]# cd conf

[root@dcy conf]# ll

总用量 36

-rw-r--r--. 1 1001 1001 2656 4月 21 2015 nginx.conf

 [root@dcy conf]# vim nginx.conf

修改的内容如下:

upstream server_lb{

              server localhost:8080;

              serverlocalhost:8088;

              #ip_hash;    fuck#是注释的意思

       }

      

   server {

       listen       80;

       server_name  localhost;

       #charset koi8-r;

       #access_log logs/host.access.log  main;

       location / {

           root   html;

                     proxy_passhttp://server_lb;

           index  index.html index.htm;

       }

保存完以后一定要进到sbin中重新加载配置文件:

[root@dcy nginx]# cd sbin

[root@dcy sbin]# ./nginx  -s reload

[root@dcy sbin]#

1.1.1.2  格外注意:此时的nginx的默认端口是80所以还需要设置80端口的防火墙:

/sbin/iptables -I INPUT -p tcp --dport 80-j ACCEPT

/etc/rc.d/init.d/iptables save

1.1.1   关闭nginx

关闭命令:相当于找到nginx进程kill。

./nginx -s stop

退出命令:

./nginx-s quit

等程序执行完毕后关闭,建议使用此命令。

1.1.2   动态加载配置文件

./nginx-s reload

可以不关闭nginx的情况下更新配置文件。



补充oracle的工具PLSQL Developer正确配置后可能出现登录时没有数据库下拉列表的问题:

打开软件界面的help-about 点击叹号查看其中的TNS FIle配置,将我的电脑的环境变量如下的TNS_ADMIN中配置的路径与之相同即可.


猜你喜欢

转载自blog.csdn.net/changudeng1992/article/details/78117398