服务器部署文档
作者:毫末科技
邮箱:hxg@haomo-studio.com
所需环境
java
tomcat
nginx
1.3 服务器的发展历史
服务器的发展历史要追溯到计算机的发展历史。
- 1.1946-1954年,第一代电子管计算机时代
1946年,第一台电子计算机ENIAC研制成功;1951年,IBM生产出第一台用于科学计算的大型机IBM 701;1953年,IBM推出了第一台用于数据处理的大型机IBM702和第一台小型机IBM650,为第一代商用计算机描绘出了一个丰满而生动的形象。 - 2.1954-1964年,晶体管造就了第二代计算机 1954年,第一台使用晶体管的第二代计算机TRADIC诞生于美国贝尔实验室,采用了浮点运算,实现计算能力的飞跃;1958年,大型科学计算机IBM 7090诞生,实现了晶体化;1961年,第一台流水线计算机IBM7030研制成功,其成为了超级计算机的雏形
- 3.1964-1970年,集成电路使第三代计算机脱胎换骨 1964年,第一台通用计算机IBM/360研制成功,其采用了集成电路技术,实现了通用性(集科学计算、数据处理和实时控制功能于一身)、系列化(区分了小型机、大型机和超级计算机,统一了指令格式、数据格式、字符编码、I\O接口和中断系统,实现了不同型号兼容)和可扩展性(具有开发价值),成为了计算机发展史上的一个重要里程碑;
- 4.1970年至今,第四代计算机 1970年,IBM S/370问世,单晶硅电路技术、虚拟存储器技术、多处理技术相继应用其中,到1976年,S/370已发展成为具有17种型号的庞大家族。 1981年,S/370系列的地址线位数被增加到了31位,大大增强了其寻址能力,并且在存储方面还增加了扩展存储器,与主存分离,改善了系统性能。 80代年上半叶以前,服务器主要是面向高端用户。80年代下半叶,大型机系统体系机构更新步伐加快。1986年,IBM 9370系列发布,标志着S/370开始向低端方向延伸,目标是服务于中小型企业。
2.安装和使用
1.所需的java运行环境
1.1 必要环境
- jdk1.8 (java版本)
- tomcat8
- nginx
1.2 非必要环境(脚本部署需要的环境)
- maven3.3.9
2.前台部署
2.1 打包文件上传(建议使用脚本,内容如下)
#!/usr/bin/
rm -rf dist
#gulp build
rsync -avz --delete dist/ <用户名>@<ip>:<路径>
- 1.rm -rf 的作用是为了将原来的包删掉
- 2.rsync -avz --delete 中的--delete是为了将服务器上之前的包删除掉。
- 3.这两句的命令保证了前端版本的更新。
2.2 配置nginx (详细见——nginx)
nginx配置如下:
server {
listen 80;
server_name < 域名||二级域名 >;
location / {
root < 路径 >;
index index.html index.htm;
}
}
配置完成之后,通过配置的域名或者二级域名直接访问就可以。
需要注意的问题:
- 1.最好将本地和服务器之前的打包版本删除掉。
- 2.如果打包后图片、字体出现问题,需要手动修改依赖包文件,并在打包过程中替换之前的依赖。
3.后台服务部署
3.1 tomcat8上传到服务器
使用命令如下:
rsync -avz tomcat8/* <用户名>@<ip>:<路径>
3.2 war方式部署
3.2.1 服务的war包上传
3.2.2 启动tomcat8
- 1.进入服务器tomcat的bin目录下;
- 2.启动服务,使用命令如下:
./catalina.sh start
- 3.访问查看。
3.3 脚本服务器部署
3.3.1 前置条件
- 1.将服务器的公钥添加到项目里面
- 2.选定项目路径
- 3.git clone ...
3.3.2 创建shell脚本
配置脚本如下:
#!/bin/bash
tomcat='tomcat路径'
cd ${tomcat}
ps -ef | grep tomcat-crm2 | awk '{print $2}' | xargs kill -9
./bin/shutdown.sh
kill -9 `netstat -plant|grep <服务启动时用的port>|awk '{print $7}'|grep -o "[0-9]*[0-9]"`
cd <项目路径>
git stash
git pull
cp /data/backend/dev.properties /data/backend/dev/crm_oa_web_cors/crm-web/src/main/filters/
/data/backend/local/apache-maven-3.3.9/bin/mvn clean
/data/backend/local/apache-maven-3.3.9/bin/mvn install -P dev
rm -rf ${tomcat}/webapps/v1/*
cp -r /data/backend/dev/crm_oa_web_cors/crm-web/target/crm-web/* ${tomcat}/webapps/v1
#rm -rf ${tomcat}/logs/*
#rm -rf /data/backend/dev_logs/*
nohup sh ${tomcat}/bin/startup.sh>/data/backend/dev_logs/nohup.out
echo "Started server in background !"
echo "see log..."
tail -f ${tomcat}/logs/catalina.out
#exit -1
3.3.3 部署
每次部署都要重新运行shell脚本。
3.4 后台项目nginx配置
放置跨域问题产生,前端配置完后,将后台项目通过代理方式,配置在nginx里。
location /v1 {
proxy_pass http://localhost:8082/v1;
proxy_set_header Host $http_host;
proxy_set_header X-Forward-For $remote_addr;
proxy_pass_request_headers on;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' '*';
return 204;
}
if ($request_method = 'POST') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' '*';
}
if ($request_method = 'GET') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' '*';
}
}