项目部署总结

如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!

 支付宝赞赏:项目部署总结

记得点击下面的余额宝,红包可能要大些。


、项目部署前提准备:

首先对于你一个开发人员来说,首先你必须懂得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

 

[[email protected] ~]# yum clean all

[[email protected] ~]# yum makecache

[[email protected] ~]# 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

如果对您有帮助 ,请多多支持.多少都是您的心意与支持,一分也是爱,再次感谢!!!

微信赞赏:项目部署总结 支付宝赞赏:项目部署总结