服务器部署文档

官网:https://haomo-tech.com

作者:毫末科技

邮箱: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' '*';
        }
    }

results matching ""

    No results matching ""