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;
}
}
}

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

  1. linux --- 部署前后端分离项目

    vue + uwsgi +nginx 部署前后端分离项目 准备项目 1.将前端vue项目包和后端django项目包上传服务器,通过lrzsz,直接从windows拖进linux中 2.解压缩操作 前端 ...

  2. 使用 Nginx 部署前后端分离项目,解决跨域问题

    前后端分离这个问题其实松哥和大家聊过很多了,上周松哥把自己的两个开源项目部署在服务器上以帮助大家可以快速在线预览(喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了 ...

  3. 在centos7.6上部署前后端分离项目Nginx反向代理vue.js2.6+Tornado5.1.1,使用supervisor统一管理服务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_102 这一次使用vue.js+tornado的组合来部署前后端分离的web项目,vue.js不用说了,前端当红炸子鸡,泛用性非常广 ...

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

    前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...

  5. docker+nginx+redis部署前后端分离项目!!!

    介绍本文用的经典的前后端分离开源项目.项目的拉取这些在另一篇博客!!! 其中所需要的前后端打包本篇就不做操作了!!不明白的去看另一篇博客!!! 地址:http://www.cnblogs.com/ps ...

  6. Linux之部署前后端分离项目

    首先得看我前两个博客,把python3,虚拟环境,mariadb数据库,redis数据库,nginx安装好. 一.创建一个虚拟环境 1,创建虚拟环境 mkvirtualenv zijin #创建了一个 ...

  7. nginx+vue+uwsgi+django的前后端分离项目部署

    Vue+Django前后端分离项目部署,nginx默认端口80,数据提交监听端口9000,反向代理(uwsgi配置)端口9999 1.下载项目文件(统一在/opt/luffyproject目录) (1 ...

  8. 前后端分离项目部署到Linux虚拟机

    最近做了一个springboot+vue的前后端分离项目,把它部署到Linux虚拟机上.下面是我的步骤和遇到的问题,需要的朋友可以看下(看的时候注意要全部看完到底部,因为我习惯是把我遇到的问题放到最后 ...

  9. Nginx部署前后端分离服务

    飘过... 一,安装Nginx 二,配置nginx 一般nginx配置文件在etc目录下 另,如何找nginx.conf配置文件: 在前后端分离端项目里,前端的代码会被打包成为纯静态文件.使用 Ngi ...

随机推荐

  1. Objective-C Collection was mutated while being enumerated crash

    Collection was mutated while being enumerated

  2. QT pri 文件的作用

    i 是什么东西?包含(include)的首字母.类似于C.C++中的头文件吧,我们可以把 *.pro 文件内的一部分内容单独放到一个 *.pri 文件内,然后包含进来. 接前面的例子,我们将源文件的设 ...

  3. Zephyr学习专题

    1 前言 本来想学习Zyphyr的Power Management,但是看着看着就被带进去了. 你看功耗,里面的suspend涉及到时间补偿相关的吧,然后就涉及到了Kernel Clocks/Time ...

  4. 交换左Ctrl键和Caps lock键

    Windows 10 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control ...

  5. 通过git命令行从github或服务器上克隆、修改和更新项目

    项目开发时,为了方便版本管理,许多公司采用git来控制项目版本.简单介绍下: 第一步:在本地新建一个文件夹,作为本地仓库,如“test”.打开git bash,进入到该文件夹目录下,如下图: 第二步: ...

  6. Item 9: 比起typedef更偏爱别名声明(alias declaration)

    本文翻译自modern effective C++,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 我确信我们都同意使用STL容器是一个好主意,并且我希望在Item ...

  7. LeetCode Pow(x, n) (快速幂)

    题意 Implement pow(x, n). 求X的N次方. 解法 用正常的办法来做是会超时的,因为可能有21亿次方的情况,所以需要优化一下.这里用到了快速幂算法,简单来说就是将指数分解成二进制的形 ...

  8. 从源码的角度再看 React JS 中的 setState

    在这一篇文章中,我们从源码的角度再次理解下 setState 的更新机制,供深入研究学习之用. 在上一篇手记「深入理解 React JS 中的 setState」中,我们简单地理解了 React 中 ...

  9. 腾讯云COS体验

    其实这篇文章本来是推荐COS的,写了一半发现COS的免费额度取消了,2019年之后的开通的用户免费6个月,老用户不受影响,这还让我怎么推荐啊?!写都写了,删掉岂不是白浪费时间? 都怪你!腾讯云! 起因 ...

  10. 手动编写的几个简单的puppet管理配置

    puppet在自动化配置管理方面有很强大的优势,这里就不做过多介绍了,下面记录下几个简单的puppet管理配置: 一.首先在服务端和客户端安装puppet和facter 1)服务端 安装Puppet ...