Linux、Debian、Jenkins、GIT、Nginx、码云安装,自动化部署前后端分离项目

1.安装Jenkins

  i:下载Jenkins安装包(war文件):https://jenkins.io/download/
  ii:这里采用Tomcat的war包方式安装,讲下载好的安装包放到Tomcat的webapps目录中
  iii:启动Tomcat
  

如遇到报错:AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://jenkins.io/redirect/troubleshooting/java.awt.headless
解决方式: i:apt-get install libxrender-dev
      ii:apt-get install libxtst-dev
   重启Tomcat

  iv:常用插件安装

  更改升级站点:http://mirror.esuni.jp/jenkins/updates/update-center.json
  SVN插件:Subversion Plug-in
  Deploy to container Plugin
  Maven Integration plugin
  Publish Over SSH
  Role-based Authorization Strategy

  Gitee Plugin

2.安装GIT

  i:安装所需依赖

依赖:apt-get install zlib1g-dev
apt-get install libssl-dev
apt-get install curl
apt-get install libcurl4-gnutls-dev
apt-get install libexpat1-dev
apt-get install gettext

  ii:下载,解压,编译

下载包:wget https://codeload.github.com/git/git/tar.gz/v2.13.0-rc1
解压:tar -zxvf v2.13.0-rc1.tar.gz
编译源码:make prefix=/usr/local/git all
安装git至/home/git路径:make prefix=/usr/local/git install

iii:配置环境变量
           

  iiii:刷新环境变量:source /etc/profile

   v:Jenkins---->全局公共配置

v i:Jenkins---->系统设置

3.通过源码编译安装Nginx

这种方式可以自定安装指定的模块以及最新的版本。方式更灵活。

官方下载页面:http://nginx.org/en/download.html

configure配置文件详解:http://nginx.org/en/docs/configure.html

安装gcc g++的依赖库

sudo apt-get install build-essential
sudo apt-get install libtool

安装pcre依赖库(http://www.pcre.org/

sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

安装zlib依赖库(http://www.zlib.net

sudo apt-get install zlib1g-dev

安装SSL依赖库

sudo apt-get install openssl
#下载最新版本:
wget http://nginx.org/download/nginx-1.13.6.tar.gz
#解压:
tar -zxvf nginx-1.13.6.tar.gz
#进入解压目录:
cd nginx-1.13.6
#配置:
./configure --prefix=/usr/local/nginx
#编译:
make
#安装:
sudo make install
#启动:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
注意:-c 指定配置文件的路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过-h查看帮助命令。
#查看进程:
ps -ef | grep nginx#停止进程kill -9 进程号

配置软链接

sudo ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

现在就可以不用路径直接输入nginx启动。

4.部署后端JAVA项目

i:新建一个任务---->构建一个Maven项目

ii:配置GIT源码管理

iii:配置构建后的操作

注意:这里有一点,因为我的项目是有父子级关系的,上传至码云是放的根项目,由于构建的时候不能拉取子项目,拉取的是根项目构建,
   构建后的web项目是在另一个文件下面,所以构建后的操作的war文件路径会有所变化

项目结构:

5.部署WEB前端项目

i:新建一个任务---->构建一个自由风格

iii:配置GIT源码管理

iii:配置构建操作

WEB项目结构:web页面直接使用shell命令打包、解压文件,放到Nginx安装位置新建的web文件夹。

  

5.最后附上一些配置文件
   i:Nginx配置

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    charset         utf-8;
    sendfile        on;
    keepalive_timeout  65;

    include    gzip.conf;

    #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
    #以$binary_remote_addr 为key,限制平均每秒的请求为20个,
    #1M能存储16000个状态,rete的值必须为整数,
    #如果限制两秒钟一个请求,可以设置成30r/m
    limit_req_zone $binary_remote_addr zone=allips:10m rate=800r/s;

    #关闭访问日志
    access_log   off;
    #设置日志格式
    log_format main ‘$remote_addr - $remote_user [$time_local] ‘
                    ‘"$request" $status $bytes_sent ‘
                    ‘"$http_referer" "$http_user_agent" ‘
                    ‘"$gzip_ratio"‘;

    upstream localhost {
      #根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。
      #同一机器在多网情况下,路由切换,ip可能不同
      #ip_hash;
      #server localhost:8088 fail_timeout=1h;
      server localhost:8080 fail_timeout=1h;
     }

    server {

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        listen       8089;
        server_name  localhost;
        location ~* ^.+\.(ico|gif|jpg|jpeg|png|html|htm)$ {
               root         web;
            access_log   off;
            expires      30d;
        }
        location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
            root         web;
            access_log   off;
            expires      24h;
        } 

        location / {
            proxy_pass   http://localhost;
            # nginx非80端口处理
            proxy_set_header        Host $host:$server_port;
            # 获取真实IP
            proxy_set_header        X-Real-IP $remote_addr;
            # 获取代理者的真实ip
            proxy_set_header       X-Forwarded-For   $proxy_add_x_forwarded_for;
            # 解决getScheme,isSecure,sendRedirect
            proxy_set_header X-Forwarded-Scheme  $scheme;
            client_max_body_size    10m;
            client_body_buffer_size 128k;
            proxy_connect_timeout   30;
            #proxy_send_timeout      90;
            #proxy_read_timeout      90;
            proxy_buffer_size       4k;
            proxy_buffers           4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;

            #限制每ip每秒不超过20个请求,漏桶数burst为5
            #brust的意思就是,如果第1秒、2,3,4秒请求为19个,
            #第5秒的请求为25个是被允许的。
            #但是如果你第1秒就25个请求,第2秒超过20的请求返回503错误。
            #nodelay,如果不设置该选项,严格使用平均速率限制请求数,
            #第1秒25个请求时,5个请求放到第2秒执行,
            #设置nodelay,25个请求将在第1秒执行。

            #limit_req zone=allips burst=5 nodelay;
        } 

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

原文地址:https://www.cnblogs.com/zf29506564/p/9728465.html

时间: 2024-08-14 16:06:12

Linux、Debian、Jenkins、GIT、Nginx、码云安装,自动化部署前后端分离项目的相关文章

vue+uwsgi+nginx部署前后端分离项目

一:vue+uwsgi+nginx部署 1.1:准备代码: # 路飞学城django代码 https://files.cnblogs.com/files/pyyu/luffy_boy.zip # vue代码 https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip 1.2:部署准备 1. 部署环境准备 ⑴ . 准备python3和虚拟环境解释器,python3,virtualenvwrapper. pip3 install -i h

nginx反向代理前后端分离项目(后端多台)

目前软件架构都比较流行前后端分离,前后端的分离也实现了前后端架构的分离,带来的好处 —— 整个项目的开发权重往前移,实现真正的前后端解耦,动态资源和静态资源分离,提高了性能和扩展性. 通常SpringBoot与vue 进行前后端分离,主要有两种方式: 1.打包(npm run build命令)vue项目出来的dist文件夹拷贝到springboot项目的static文件目录,部署到tomcat即可. 2.利用nginx的反向代理. 本文主要讲解第二种 首先打包前端项目到指定目录:E:\fjgh\

前后端分离项目之------nginx路由转发

需求:前后段分离的项目里面,一套系统有N套api,一套api就是一个独立的站点,每个端口都需要开通外网,否则前端页面无法访问站点.有没有一种方法,让服务器只开一个外网端口? 解决思路: 规范api路由结构.暂且定义路由结构格式为:域名(IP)+端口+/api/controller/function.端口使用同一个,那么域名(IP)+端口是固定的,在nginx里面可以根据/api/controller来匹配路由 接口1:   /api/sso/x1     /api/sso/x2  /api/ss

jenkins部署前后端分离的vue项目

1 General Name: 变量名. 类似给分支起一个名字的意思, 可随意取 Description: 描述, 非必填 Parameter Type: 选择 Branch or Tag Default Value: 默认分支 以上需要安装插件Git Parameter, 没有的话就在插件管理中安装, 以上设置为了构建的时候可以自由选择分支. 2 源码管理 我用的是git, 仓库是gitlab, 使用svn可选择Subversion Branch Specifier (Blank for "a

Nginx+uwsgi+celery+supervisor部署Django前后端分离项目

本实验实现了负载均衡.反向代理.动静分离,还实现了根据客户端设备user-agent进行转发,也就是移动端和PC端访问的页面不一样. 1. 项目部署逻辑图 2. 环境准备 服务器:6台VM操作系统:CentOS7LB.www.wap:安装Nginxuwsgi1.uwsgi2:安装nfs-utils.Python3解释器.virtualenvNFS:安装NFSMRCS:安装MySQL.Redis.virtualenv 注意:这里不介绍软件的安装Nginx安装参考:http://blog.51cto

uwsgi加nginx部署django restframework前后端分离项目

一.uwsgi和nginx简介 1.uwsgi(摘抄于百度百科): uWSGI是一个Web服务器,它实现了WSGI协议.uwsgi.http等协议.Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换.WSGI是一种Web服务器网关接口.它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范. 2.nginx(摘抄于百度百科): Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMA

在vue-lic脚手架中安装mockjs,实现前后端分离开发

在项目开发前期,前端开发中,页面布局基本开发完毕,但是后台还接口还没有开发完,等待后台开发完接口,在进行接口联调,浪费了等待时间,也压缩的测试的时间.所以实现请求拦截,前端模拟后台请求数据就是一个很不错的处理方式. mockjs mockjs可以生成随机数据,拦截 Ajax 请求,让前端攻城师独立于后端进行开发.并且支持生成随机的文本.数字.布尔值.日期.邮箱.链接.图片.颜色等. 使用方法 mockjs 可以很方便的添加到以webpack为管理的项目中,以vue-cli脚手架生成的项目为例.v

通过git从码云克隆项目到本地

Git从码云或者Github 克隆代码到本地 1.下载安装Git,傻瓜式下一步下一步即可... 2.配置Git: 2.1.选择你要clone到本地的路径:右键--->$ Git Bash Here,弹出Linux命令窗口:$ cd ~直接回退到当前盘符下,再输入:$ cd E:\Code 就可以进入你自己的目录: 2.2.$ git config --global user.name "你自己的用户名"    注意空格,换成自己的用户名Github或者码云(克隆哪个的就用对应的用

Linux下Jenkins+git+gradle 持续集成环境搭建

一.项目介绍 和 linux 环境搭建 本教程讲解 Linux下Jenkins+git+gradle 持续集成环境搭建,后续会加入 gerrit代码审核 和 robotium自动化测试 1.基本流程如下: androidstudio--  gerrit  --- git(github)   ----jenkins ---gradle ----  robotium  结果 使用AndroidStudio 开发,提交到gerrit进行代码审核,审核后提交给git(可以自己搭建git服务也可以使用gi