JavaWeb项目 IDEA+Tomcat+Nginx 部署流程
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11375100.html
一:IDEA Maven项目打包
1、修改打包方式
在maven项目的pom文件中,修改打包方式为:war。
2、通过maven工具栏进行打包
点击IDEA右侧, 有个maven侧边栏,点击展开他;
选择你要打包的项目,点击展开:如果是聚合模块开发出来的项目,则选中根目录下pom所在项目进行统一打包;
点击 LifeCycle:
1)第一步:点击clean
2)第二步:点击package
此时会自动执行前置的生命周期,直到打包成功。
3)第三步:查看打包结果
打包过程中如果没发生编译失败、单元测试失败等,则会成功打包。我们可以在左侧项目大纲中,点击打包项目进行展开,找到target目录,就可以找到我们刚才打包出来的war包了。
3、放到本地tomcat测试
将war包放到tomcat目录的webapps,重启tomcat,通过浏览器进行访问。
可以将war包重命名后再部署,这样的话解压出来的项目名就简单好记,maven默认打包出来的项目带了版本号等,比较长。
二:搭建服务器
1、安装JDK
我使用的是centOS7系统,使用yum工具进行安装:yum在安装的同时会自动配置环境,无需自行设置。
1)检查系统有无安装过jdk
rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj
如无输出,则说明没有安装。
如果有输出,可以使用以下命令卸载:
rpm -qa | grep java | xargs rpm -e --nodeps
接下来开始安装JDK1.8。
2)检索java1.8相关安装列表。
yum list java-1.8*
3)安装java1.8.0的所有文件
yum install java-1.8.-openjdk* -y
4)检查是否安装成功
java -version
可以查看到jdk版本和位数,则成功。
2、搭建数据库
1)安装数据库
我使用的是PostgreSQL,具体安装步骤参考:https://www.cnblogs.com/shhnwangjian/p/8392050.html
其他数据库安装自行网上搜索。
2)远程连接测试是否搭建成功
使用Navicat工具,远程连接到数据库服务器。
3)新建数据库
创建本项目要使用的数据库,并将本地开发过程中建表sql脚本在此处再次运行一遍。
4)新建登录账号
新建一个账号,用于本项目代码连接数据库使用。
3、安装tomcat
1)前往tomcat官网下载页
找到对应版本的下载页面,找到 tar.gz 的下载链接,右键——复制下载链接。
2)下载压缩包
cd到~目录,新建一个目录:web_server,并cd到这个目录。
通过:
wget 下载链接
下载压缩包。
3)解压
通过
tar -zxvf 压缩包名
解压得到tomcat。
4)重命名
解压出来的tomcat带有版本号信息,名称太长。
可以通过
mv 原名称 新名称
进行重命名。
5)启动并测试
cd到tomcat/bin目录下,执行启动文件。
./startup.sh
通过浏览器,输入服务器 ip:8080 ,能成功看到tomcat欢迎页面
4、上传war包到服务器
可以通过传输工具连接到服务器,进行可视化拖动。
我个人偏爱命令行操作,所以我选择使用scp命令进行操作。
将打包的war包重命名好后,在war包所在目录处打开CMD终端窗口,输入:
scp xxx.war root@服务器ip:tomcat/webapps目录路径
按提示输入root账号密码即可。
5、修改tomcat默认端口
tomcat默认监听80端口,对于公司内部有自己机房的情况,默认内网机器的80端口是禁止暴露的。
因此需要将tomcat监听端口改为其他端口:
cd到tomcat/conf目录,vim server.xml:将connecter的port由8080改为你想要监听的端口。
6、修改tomcat默认启动页为项目首页
接着第五步,在默认的host标签内插入:<Context path="" docBase="../webapps/项目名/"/> 即可。
7、重启tomcat,使配置生效
8、校验是否部署成功
从浏览器输入 IP:端口 ,能访问到项目即成功。
如果没有修改端口,则输入ip即可。
三:搭建负载均衡服务器
1、安装Nginx
1)添加源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
2)查看源是否添加成功
yum search nginx
3)安装Nginx
sudo yum install -y nginx
4)启动Nginx并设置开机自动启动
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
5)检查是否安装成功
浏览器输入 ip:8080 ,可以看到Nginx欢迎页面。
2、配置反向代理
cd到Nginx安装目录,yum安装一般在 /etc/nginx下。
cd到conf.d目录下,vim default.conf:
1)添加要跳转到的目标地址
在开头第一行,添加upstream:
upstream tomcat1 {
server 目标ip或域名:端口;
}
2)修改ngnix监听端口
刚才说过,部署在公司内部机房的,禁止使用80端口,如果是部署在公有云上,则无需进行此步操作。
修改server标签内:
server {
listen 监听端口;
server_name 域名; #charset koi8-r; #access_log logs/host.access.log main; location / {
proxy_pass http://tomcat1; //此处配置代理的目标为上面配置的业务系统路径
index index.html index.htm;
}
}
3、重启Nginx服务使配置生效
systemctl restart nginx.service
4、检验是否成功
浏览器输入Nginx所在服务器域名,能成功跳转至业务系统首页,即成功。
JavaWeb项目 IDEA+Tomcat+Nginx 部署流程的更多相关文章
- JFinal 项目 在tomcat下部署
原文:http://my.oschina.net/jfinal/blog/353062 首先明确一下 JFinal 项目是标准的 java web 项目,其部署方式与普通 java web 项目没有任 ...
- 在腾讯云&阿里云上部署JavaWeb项目(Tomcat+MySQL)
之前做项目都是在本地跑,最近遇到需要在在云服务器(阿里云或者腾讯云都可以,差不多)上部署Java Web项目的问题,一路上遇到了好多坑,在成功部署上去之后写一下部署的步骤与过程,一是帮助自己总结记忆, ...
- IDEA2017.3.3创建第一个javaweb项目及tomcat部署实战
一.创建简单web项目 1. 选择jdk(这里有点小问题不是很理解,通过java -verbose查找出来的jdk路径在C盘,这里并不能识别,而我jdk安装的时候有自己的路径在D盘,导入后就是图中的j ...
- [转]intellij 13新建javaweb项目并用tomcat 7启动
来自:http://blog.csdn.net/little__zm/article/details/19570535 对intellij不熟,找了很多文章,只这篇最为顺利.其他都有各种各校的问题,先 ...
- 【tomcat】手动部署动态JavaWeb项目到tomcat
1.通过修改server.xml进行配置 1.查看项目的目录结构: tomcat运行时加载WebConmtent目录
- [置顶] Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 二
最近看到有好多童鞋比较热衷热部署,特别是多模块的项目,其实这热部署如果多模块比较大资源,容易内存溢出或者电脑卡住,并不建议这么做. 不过了解下也没有关系,这里我就在说说热部署的另外一种方法,因为我之前 ...
- myeclipse项目在Tomcat服务器部署问题
错误信息:Deployment of project mybook will replace this resource. Please specify the action you wish to ...
- creat-react-app/dva静态项目,用nginx部署在次级域名路径(如a.com/sub/)需要注意的几点
因为要把dist文件夹部署在一个域名的次级目录,没想到和运维同学一起折腾了一下午.. 放在这里备忘,也给后来的同学一些可查的中文资料: 1,dva/cra给你的模板index.html是在public ...
- [JavaWeb基础] 001.简单的JavaWeb代码和Tomcat配置部署
简介: 其实说明白了就是J2EE应用开发,前端可以有很多的展现方式,后端由Java做逻辑运算和数据支撑.适用于创建服务器应用程序和服务,为搭建具有可伸缩性.灵活性.易维护性的商务系统提供了良好的机制. ...
随机推荐
- [日常] 解决github速度特别慢
执行下面这俩命令,找到对应的IP,增加host就能解决 nslookup github.global.ssl.fastly.Netnslookup github.com root@tao-PC:/va ...
- JAVA反射(资源版)
关于JAVA反射的作用可以看这篇博客(说的很详尽): https://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html 下面是关于JAVA反射的 ...
- AWVS破解安装
参考大佬@pirogue的安装步骤及awvs安装包,@pandahks的安装依赖,在本地虚拟机安装awvs,艰辛历程记录如下. 虚拟机操作系统:CentOS Linux release 7.7.190 ...
- django获取某一个字段的列表 values values_list flat=true
1.values() print(Question.objects.values('title')) #得到的是一个字典 <QuestionQuerySet [{'title': '查询优化之s ...
- day71_10_16多表断关联
---恢复内容开始--- 本次环境: 配置settings INSTALLED_APPS = [ # ... 'rest_framework', ] DATABASES = { 'default': ...
- Mybatis主配置文件配置url报错:Cause: org.xml.sax.SAXParseException; lineNumber: 15; columnNumber: 100; 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。
<property name="url" value="jdbc:mysql://localhost:3306/shop?characterEncoding=UTF ...
- Redis的Sorted-Sets排行榜功能实现
Redis的ZSet排行榜功能实现 1. 功能需求 类似给用户n张图片, 用户左滑不喜欢右滑喜欢.所以每个用户就会有一些喜欢的图片集合和不喜欢的图片集合.现在我们要做一个将按照一个算法将喜欢的排到前面 ...
- 物联网架构成长之路(32)-SpringBoot集成MQTT客户端
一.前言 这里虽然是说MQTT客户端.其实对于服务器来说,这里的一个具有超级权限的MQTT客户端,就可以做很多事情.比如手机APP或者网页或者第三方服务需要发送数据到设备,但是这些又不是设备,又不能让 ...
- LeetCode 2:两数相加 Add Two Numbers
给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和 ...
- 解决centos ssh连接很慢的问题
更改配置文件vi /etc/ssh/sshd_config找到UseDNS 将UseDNS前面的#删除,并将YES改为NO,若找不到UseDNS,则手动添加UseDNS,并将其设置成No保存并重启ss ...