项目部署总结

、项目部署前提准备:

首先对于你一个开发人员来说,首先你必须懂得linux常用的一些命令,并且装载相应的所需要的软件(如虚拟机)。如果是部署到云服务器上,你肯定是需要购买 云服务器的。目前国内有腾讯云服务器,阿里云服务器,华为云,京东去,七牛云等:个人暂时就知道这些个国内的云服务商。

二、项目部署

我们对于 Java Web 项目在本地机器(无论是 Windows 还是 Linux)上的部署已经了然于心了,那么对于在云服务器上部署 Java Web 项目又是如何操作的呢? 其实很简单,还是离不开 Web 项目部署的那三点:
① 基础的 JDK 环境
② 一个 Web 服务器。如 Tomcat、JBoss
③ 一款数据库。如:mysql

对于云服务器上 Java Web 项目的部署,和平时在 Windows、Linux 下部署是一样的。最多也就是只能使用纯命令模式来操作而已,其实过程都一样。

2.1 环境准备

既然是 Java Web 项目的部署,首先自然需要配置好相关的环境罗。也就是:先在云主机上搭建好 Java 开发环境,如 OpenJDK 的安装、Tomcat 的安装、Mysql 数据库的安装。

2.2 项目部署

我们要部署 Java Web 项目,那就至少得将项目上传到云服务器。其实过程很简单,基本上也就是下面三个步骤:
① 打包上传:将项目打包成 war 文件,然后利用传到远程服务器(在Eclipse中直接将项目导出为.war文件)。
② 将 war 文件移动到 Tomcat 目录下的 webapps 下。
③ 重启 Tomcat,访问我们的项目。

在这个过程中,我们需要注意。因为一般而已,作为一个 Web 项目,我们肯定是有数据库的使用的。那么数据库部分怎么办呢?其实,只需要将我们已有的数据库转储为 sql 文件,然后将 sql 文件上传到云服务器上执行即可。以 mysql 为例,如下操作:

① 转储为 sql 脚本,并上传:先在本地将我们项目使用的数据库转为 sql 文件,上传到云服务器上 (可以利用 Navicat 将数据库转储为.sql文件)。
② 执行 sql:然后进入 mysql 中执行该 sql 文件。(若服务器装有Navicat,可直接用Navicat执行.sql文件,执行前需要选中存放表的数据库,应该与代码中数据库连接语句包含的数据库名保持一致)。以下是具体的一个参考,仅仅是参考哦!具体项目实施之后,只有你自己最清楚。

1. 更新163 yum源

cd /etc/yum.repos.d/

mv CentOS-Base.repo CentOS-Base.repo.backup

wget http://mirrors.163.com/.help/CentOS6-Base-163.repo

[root@localhost ~]# yum clean all

[root@localhost ~]# yum makecache

[root@localhost ~]# yum update

或者是:http://centos.ustc.edu.cn/

2. 安装rzsz

yum -y install lrzsz

3. 安装jdk

先卸载open-jdk

java –version

rpm -qa | grep java

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

开始安装:

mkdir /usr/local/src/java

rz 上传jdk tar

tar -xvf jdk-7u71-linux-i586.tar.gz

yum install glibc.i686

vi /etc/profile

② 在末尾行添加

#set java environment

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

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

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出

source /etc/profile  使更改的配置立即生效

java -version  查看JDK版本信息,如果显示出1.7.0证明成功

4. 创建ucenter用户

一般生产环境是不会使用root用户来发布tomcat等应用的。

useradd ucenter –d /ucenter    创建用户指定目录

passwd ucenter –设置密码为:ucenter

mkdir /ucenter

chown ucenter:ucenter /ucenter/ -R

5. 安装mysql

安装的mysqlpercona分支;

文档:http://www.percona.com/doc/percona-server/5.6/

安装包:Percona-Server-5.6.21-70.0-r688-el6-x86_64-bundle.tar

首先安装cmake

yum -y install cmake

cd /usr/local/src/

mkdir mysql-percona

cd mysql-percona/

rz 上传安装包

tar -xvf Percona-Server-5.6.21-70.0-r688-el6-x86_64-bundle.tar

rpm -ivh Percona-Server-shared-56-5.6.21-rel70.0.el6.x86_64.rpm

rpm -ivh Percona-Server-client-56-5.6.21-rel70.0.el6.x86_64.rpm

rpm -ivh Percona-Server-server-56-5.6.21-rel70.0.el6.x86_64.rpm

启动:

service mysql start

修改root密码:

这是linux命令执行的,不是登录之后

mysqladmin -u root password "root"

登录:

mysql -uroot -proot

设置远程访问(使用root密码):

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

flush privileges;

防火墙打开3306端口

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

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

/etc/init.d/iptables status

5.1. 安装3307端口mysql

mkdir /usr/local/mysql/data –p

mkdir /usr/local/mysql/logs –p

mkdir /usr/local/mysql/etc –p

mkdir /usr/local/mysql/var –p

chown mysql:mysql /usr/local/mysql/ -R

cp /etc/my.cnf /usr/local/mysql/etc/

vi /usr/local/mysql/etc/my.cnf

[mysqld]

port=3307

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql-3307.sock

user=mysql

log_error=/usr/local/mysql/logs/db_error.log

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

[mysqld_safe]

log-error=/usr/local/mysql/logs/db_error.log

pid-file=/usr/local/mysql/mysqld-3307.pid

安装:

/usr/bin/mysql_install_db  --defaults-file=/usr/local/mysql/etc/my.cnf  --basedir=/usr/  --datadir=/usr/local/mysql/data  --user=mysql

启动:

/usr/bin/mysqld_safe  --defaults-file=/usr/local/mysql/etc/my.cnf &

修改root密码:

mysqladmin -h127.0.0.1 -P3307 -uroot password "root"

修改远程访问:

mysql -uroot -h127.0.0.1 -P3307 -p

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

flush privileges;

防火墙打开3307端口

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

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

/etc/init.d/iptables status

5.2. 解决mysql访问慢的问题

vim /etc/my.cnf

[mysqld]下面添加:

skip-name-resolve

重启mysql服务

service mysql restart

原因

mysql客户端每次访问dbmysql就会试图去解析来访问的机器的hostname,并缓存到hostname cache,如果这时解析不了,等一段时间会失败,数据才能被取过来。

6. 安装Redis

yum -y install cpp binutils glibc glibc-kernheaders glibc-common glibc-devel gcc make gcc-c++ libstdc++-devel tcl

mkdir -p /usr/local/src/redis

cd /usr/local/src/redis

wget http://download.redis.io/releases/redis-2.8.17.tar.gz  或者 rz 上传

tar -xvf redis-2.8.17.tar.gz

cd redis-2.8.17

make

make test #这个就不要执行了,需要很长时间

make install

cp redis.conf /etc/

vi /etc/redis.conf

# 修改如下,默认为no

daemonize yes

#启动

redis-server /etc/redis.conf

#测试

redis-cli

7. 安装Nginx

nginx安装一个用户下面 /ucenter

yum -y install gcc-c++  

yum -y install pcre pcre-devel  

yum -y install zlib zlib-devel  

yum -y install openssl openssl—devel

mkdir /usr/local/src/nginx

cd /usr/local/src/nginx

wget http://nginx.org/download/nginx-1.7.7.tar.gz  rz上传

tar -xvf nginx-1.7.7.tar.gz

cd nginx-1.7.7

#安装到/ucenter

mkdir -p /ucenter/soft/nginx

./configure --prefix=/ucenter/soft/nginx --user=ucenter --group=ucenter

make  

make install

由于非root用户不能占用80端口所以使普通用户以root身份启动nginx

cd /ucenter/soft/nginx/sbin

chown root nginx

chmod u+s nginx

防火墙打开80端口

service iptables stop //关闭防火墙

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

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

/etc/init.d/iptables status

8. 安装RabbitMQ

8.1. 安装Erlang

8.1.1. 添加yum支持

cd /usr/local/src/

mkdir rabbitmq

cd rabbitmq

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc

sudo yum install erlang

或者:

上传esl-erlang_17.3-1~centos~6_amd64.rpm

执行 yum install esl-erlang_17.3-1~centos~6_amd64.rpm

上传:esl-erlang-compat-R14B-1.el6.noarch.rpm

yum install esl-erlang-compat-R14B-1.el6.noarch.rpm

8.2. 安装RabbitMQ

上传rabbitmq-server-3.4.1-1.noarch.rpm文件到/usr/local/src/rabbitmq/

安装:

rpm -ivh rabbitmq-server-3.4.1-1.noarch.rpm

8.2.1. 启动、停止

service rabbitmq-server start

service rabbitmq-server stop

service rabbitmq-server restart

8.2.2. 设置开机启动

chkconfig rabbitmq-server on

8.2.3. 设置配置文件

cd /etc/rabbitmq

cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/

mv rabbitmq.config.example rabbitmq.config

8.2.4. 开启用户远程访问

vi /etc/rabbitmq/rabbitmq.config

注意要去掉后面的逗号。

8.2.5. 开启web界面管理工具

rabbitmq-plugins enable rabbitmq_management

service rabbitmq-server restart

8.2.6. 防火墙开放15672端口

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

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

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

9. 安装solr

切换到ucenter用户;

mkdir /ucenter/web/

rz 上传taotao-solr-4.10.1.tar.gz

tar –xvf taotao-solr-4.10.1.tar.gz

mv example taotao-solr

cd taotao-solr/

java -Dsolr.solr.home=taotao-solr -jar start.jar &

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

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

10. 程序部署

mkdir /ucenter/web/upload

名称

路径

server port

http port

Connector port

mystore-manage

/ucenter/web/mystore-manage/tomcat-mystore-manage

18005

18080

18109

mystore-web-01

/ucenter/web/mystore-web/tomcat-mystore-web-01

18006

18081

18110

mystore-web-02

/ucenter/web/mystore-web/tomcat-mystore-web-02

18007

18082

18111

mystore-web-03

/ucenter/web/mystore-web/tomcat-taotao-web-03

18008

18083

18112

mystore-sso-01

/ucenter/web/mystore-sso/tomcat-sso-01

18009

18084

18113

mystore-sso-02

/ucenter/web/mystore-sso/tomcat-sso-02

18010

18085

18114

mystore-order

/ucenter/web/mystore-order/tomcat-order

18011

18086

18115

11. Nginx配置负载均衡


12.  /etc/sysconfig/network-scripts/ifcfg-eth0

service network restart

猜你喜欢

转载自blog.csdn.net/qq_30764991/article/details/80540276