2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 使用阿里云ECS服务器部署Web应用流程介绍

使用阿里云ECS服务器部署Web应用流程介绍

时间:2019-02-23 17:52:30

相关推荐

使用阿里云ECS服务器部署Web应用流程介绍

一.前言

学习了许久的Java,也参与开发了很多的Java项目,但一直没有系统的接触学习过项目部署,而我对项目部署也很有兴趣,于是便摸索学习了一番,在这里记录一下学习过程,参考博客,遇到的问题和解决办法,有需要会随时更新。

服务器使用的阿里云ECS云服务器,下面就开始一步步介绍如何从零开始部署一个Web项目。

二.建站流程

第一步:购买阿里云服务器

1.阿里云提供多种服务器类型的选择,这里主要介绍其中两款云服务器的区别:轻量应用服务器和云服务器ECS

1)轻量应用服务器:提供各种镜像安装,能够预装开发运行需要的应用环境,适合快速部署项目

2)云服务器ECS:只预装了基础的操作系统,其他软件需自己安装,适合学习

我这里选择购买了云服务器ECS,学生购买服务器是有优惠的,一年114,下面是学生优惠购买的地址

/ntms/act/campus.html?userCode=qhrfl7xv

购买过程中可以设置服务器密码,也可以购买完成后再设置。

购买完成后查看自己的云主机,里面包含两个ip(公网ip和私有ip):

1)公网ip:公网ip用于提供互联网的访问服务

2)私有ip:用于内网访问使用,同一个VPC下,并在同一个安全组下的ECS,默认内网互通,并且内网能实现快速互访,不受公网带宽的影响,内网IP地址常用于ECS与ECS之间的快速访问

第二步:购买域名

在阿里云的域名服务购买域名,配置DNS解析,指向我们服务器的公网ip。(这里注意,因为指向的是阿里云的服务器,属于大陆服务器,所以需要对域名进行备案,才能正常访问到服务器。如果仅仅想访问本机,不备案也可以)

第三步:域名备案

如果域名未备案的话,访问会出现如下界面

具体本案步骤可参考:/knowledge_detail/36925.html?spm=5176.11065259.1996646101.searchclickresult.7bab345eZzJDFy

第四步:ECS云服务器环境配置

Part 1 :下载Xshell和Xftp,用于操作服务器

下载链接:/s/17XCHaCs7viIUKsgrO0gydw 提取码:6scw

连接参数:1.ip为服务器公网ip

2.账号为root

3.密码为自己设置的云服务器密码

Part 2:安装JDK 1.8

安装到/usr/local/java目录下(CentOS一般软件都安装到/usr/local)

安装方法参照:/pdsu161530247/article/details/81582980

踩的坑:

1.使用wget方法下载jdk的时候无法解压,因为使用这种方法下载的包没有同意证书,所以不能解压。需要自己去官网下载好安装包然后传到服务器。

2.配好Java环境变量后报错。

可能原因:

1)CentOS自带了OpenJDK,自己再安装一个后,系统不知道用哪个。(ECS服务器实例中是没有安装OpenJDK的)

2)echo $PATH 环境变量配置了多个jdk。

出现这个的原因是export的最后一句,每次都会拼接上之前的path。

第一次vim /etc/profile,添加下面的配置,然后source /etc/profile:

export JAVA_HOME=/root/usr/local/java/jdk1.8.0_161/ #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}

因为配置错了,所以再次vim /etc/profile,删除上面的配置,添加下面的配置,然后source /etc/profile,出现问题,PATH加上了上一次的错误配置。

export JAVA_HOME=/usr/local/java/jdk1.8.0_161 #jdk安装目录export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport PATH=$PATH:${JAVA_PATH}

解决方法:重置PATH变量,再重新配置Java环境变量。操作如下:

① vim /etc/profile 删除前面配置过的path,添加下面一条,再source /etc/profile就可以重置PATH

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

② 再填入正确的环境变量,重新配置即可

3)JDK压缩包有问题。(调了一下午,尝试了各种方法,最后发现2中的bug是由于我从网上下的JDK安装包有问题,坑啊。从官网下了一个就不报错了)

JDK 1.8 下载链接:/s/1fZ91wKsPaA7ObjdFs8NX2A 提取码:dwsp

Part 3:安装Tomcat

解压,(如有需要修改参数配置),启动。具体参考:/xdp-gacl/p/4097608.html

踩的坑:

1.服务器Tomcat成功启动后,外部访问 “服务器ip:8080” 并不能访问到Tomcat,原因是阿里云服务器默认未开启8080端口的安全组,需要在:打开阿里云官网-->(管理)控制台-->云服务器ECS-->实例,然后点击右边的“更多”-->网络和安全组-->安全组配置 中配置安全组。

(补充:另外还有一种访问不了的原因是Linux系统的防火墙禁止了8080端口)

Tomcat 8 下载地址:/apache/tomcat/tomcat-8/v8.5.40/bin/

Part 4:安装Mysql

CentOS安装mysql有一下几种方式:

1.源码编译安装

2.二进制rpm包安装

3.yum安装(yum将自动从centos的镜像站点查找你指明的软件的最新二进制包,并检查软件包依赖关系,安装软件的同时自动安装其依赖的软件包。yum本身是不包含Mysql的库的,需要我们指定)

这里我们选择yum安装方式:

1)wget /mysql57-community-release-el7-10.noarch.rpm(下载yum包,貌似可省略)

2)sudorpm -Uvh mysql57-community-release-el7-10.noarch.rpm ( 安装repo源)

3)yum install -y mysql-community-server (真的是巨慢,应该可以通过清华源安装,后续摸索)

调试安装好的mysql:

1) 启动 MySQL(推荐第一组命令):

systemctl start mysqldsystemctl stop mysqldsystemctl restart mysqld//第二种,容易记,但是我用的时候报Unit not find的错误service msyqld startservice msyqld stopservice msyqld restart

2)设置开机启动 MySQL

systemctl enable mysqldsystemctl daemon-reload

3)修改 MySQL 密码(Mysql启动后会给root用户生成随机密码),使用下面命令可以查看

grep 'temporary password' /var/log/mysqld.log

4)登陆,并修改密码

mysql -u root -p

set password for 'root'@'localhost'=password('YourNewPassword123!');

因为 mysql 设置了密码安全检查插件,你的密码必须包含大小写英文,数字,字符且不小于8位,需注意,以英文分号结束。否则会报错。

5)设置远程连接(因为 root 用户默认禁止远程连接,所以你可以改变策略让 root 远程连接,或者创建新用户去远程连接。这里为了安全起见,新建用户 ppjun)

GRANT ALL PRIVILEGES ON *.* TO 'ppjun'@'%' IDENTIFIED BY 'YourNewPassword123!' WITH GRAN;

(这里的意思是让用户 ppjun 分配本机所有数据库所有表的权限,并且设置密码 YourNewPassword123!,我用的时候出错了)

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

(给root用户设置远程连接)

6)配置默认 UTF8 编码

vim /etc/f

在[mysqld]下面新增 character_set_server=utf8

7)重启mysql

停止命令:systemctl stop mysqld.service

启动命令:systemctl start mysqld.service

(可以使用show variables like 'character_set_%'; 查看字符集是否修改好)

Part 5:安装Redis

1)下载、解压、编译Redis

$ wget http://download.redis.io/releases/redis-5.0.4.tar.gz$ tar xzf redis-5.0.4.tar.gz$ cd redis-5.0.4$ make

2)进入:redis-5.0.4/src,将redis-server 和 redis-cli 移动到 redis-5.0.4中

cp redis-cli redis-server /usr/local/java/redis-5.0.4

3)配置redis配置文件redis.conf,在redis-5.0.4下。

daemonize yes (修改daemonize 为yes,是redis可以在后台运行)# bind 127.0.0.1(redis安全策略默认本机访问,所以远程访问的话需要将 bind 127.0.0.1加#注释掉)protected-mode no (修改protected-mode为no,使得可以远程访问)

4)添加安全组,开发阿里云服务器6379端口

5)启动redis服务器,在redis-5.0.4目录下输入如下命令

./redis-server redis.conf

启动成功即可通过ip+端口号连接redis了

Part 5:安装Nginx

参考:/u014209205/article/details/78921870

Part6:项目部署

部分方式有以下几种:

1.打成war包放到Tomcat的webapps目录下

报错:

21-Apr- 01:01:33.869 INFO [http-nio-8080-exec-3] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request headerNote: further occurrences of HTTP header parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:483)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)at org.apache..NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)at org.apache..SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)

原因是项目中使用了https请求,Tomcat的header缓冲区大小不够,只需要在server.xml中增加maxHttpHeaderSize字段即可:

<Connector connectionTimeout="20000" maxHttpHeaderSize="8999" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

2.打成jar包,使用java -jar运行jar包

1)进入到项目的根目录,打开命令行,输入打包命令打包

cmd窗口输入:mvn clean package -Dmaven.test.skip=true

PowerShell窗口输入:mvn clean package '-Dmaven.test.skip=true'

2)到项目target找到打包好的jar包,上传到服务器上

3)启动jar包,后台启动jar包

nohup java -jar sell.jar >log.txt & (>log.txt是日志输出到log.txt文件的意思)

nohup java -jar sell.jar -Dspring.profiles.active=prod >log.txt &

3.Docker镜像部署

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。