系统: CentOS7.9
环境: jdk11
CentOS 安装 JDK
系统版本:CentOS7.9
1. 查看云端 yum 库中目前支持安装的 jdk 软件包
yum search java|grep jdk
2. 选择版本安装 jdk
yum install -y java-11-openjdk*
3. 安装完成后,验证是否安装成功
java -version
4. 查找 jdk 安装位置
find / -name 'java'
默认安装路径一般为: /usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/bin/java
CentOS 防火墙设置
系统版本:CentOS7.9
开启对应端口号,外网才能访问
查看防火墙状态
systemctl status firewalld
Active: active (running),防火墙已开启
shell> systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: active (running) since Mon 2020-04-06 00:03:45 CST; 2s ago
Docs: man:firewalld(1)
Main PID: 5463 (firewalld)
CGroup: /system.slice/firewalld.service
└─5463 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
启动防火墙
systemctl start firewalld
停止防火墙
systemctl stop firewalld
重启防火墙
systemctl restart firewalld
允许开机启动
systemctl enable firewalld
禁止开机启动
systemctl disable firewalld
查看防火墙规则
firewall-cmd --list-all
ports 是已开启端口号
shell> firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: ssh dhcpv6-client
ports: 3888/tcp 2181/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
添加端口
firewall-cmd --add-port=2888/tcp --permanent
shell> firewall-cmd --add-port=2888/tcp --permanent
success
shell> firewall-cmd --add-port=65001-65010/tcp --permanent
shell> firewall-cmd --reload
success
# 查看是否添加成功
shell> firewall-cmd --list-ports
3888/tcp 2181/tcp 2888/tcp
删除端口
firewall-cmd --remove-port=2888/tcp --permanent
添加端口范围
firewall-cmd --add-port=65001-65010/tcp --permanent
重新加载(修改防火墙规则后需要执行 reload)
firewall-cmd --reload
CentOS 安装 Jenkins
参考地址 1:官网 参考地址 2:CentOS 7 安装 jenkins(腾讯云) 参考地址 3:前端工程化:保姆级教学 Jenkins 部署前端项目(掘金) 参考地址 4:linux 安装 jenkins 【详细教程】(简书)
系统版本:CentOS7.9
前置要求:已安装 jdk,已开启防火墙相应端口号
- 使用 jenkins 的安装仓库
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
Jenkins 资源设置完成
- 使用 yum 安装
yum install -y jenkins
Jenkins 安装完成
- 查找 Jenkins 所在目录
whereis jenkins
查看 Jenkins 安装位置
find / -name jenkins
端口号配置文件
/etc/sysconfig/jenkins
JDK 环境变量配置文件
/etc/init.d/jenkins
- 进入 jenkins.war 所在目录启动 jenkins
启动 Jenkins
# 指定端口后台启动
# nohup java -jar /usr/share/jenkins/jenkins.war --httpPort=8080 /var/log/jenkins/jenkins-$(date +%Y-%m-%d).log 2>&1 &
# 指定端口后台启动
nohup jenkins --httpPort=8080 /var/log/jenkins/jenkins-$(date +%Y-%m-%d).log &
Jenkins 密钥
查看 Jenkins 进程
ps -ef | grep jenkins
关闭进程
kill -9 进程id
使用 systemctl 命令管理 Jenkins 服务
# 启动 Jenkins 服务
systemctl start jenkins
# 重启 Jenkins 服务
systemctl restart jenkins
# 停止 Jenkins 服务
systemctl stop jenkins
# 查看 Jenkins 服务状态
systemctl status jenkins
jenkins 版本对应 jdk 版本
Jenkins 插件安装
首次打开时安装推荐的插件
下载自动化部署所需插件
- ==nvm-wrapper==[plugins.jenkins.io/nvm-wrapper…]
Node 版本管理器:允许您轻松安装、管理和使用多个 Node.js 环境
- ==Subversion==[plugins.jenkins.io/subversion/]
SVN:添加 Subversion 支持(通过 SVNKit)
- ==Git plugin==[plugins.jenkins.io/git/]
GIT: 提供基本的 git 操作。可以轮询、获取、签出、分支、列出、合并、标记和推送存储库
下面是 Jenkins 安装插件步骤示例
进入系统管理,点击插件管理
选择可选插件,在右上角输入需要安装的插件名称进行搜索,选中搜索列表中需要安装的插件,点击Download now and install after restart
插件正在安装,选中安装完成后重启 Jenkins(空闲时)
Jenkins 创建一个任务(github)
前置要求:已安装插件 nvm-wrapper、Git plugin,nginx 服务
1. 生成 git sshkey
ssh-keygen -t ed25519 -C "github 邮箱账号"
==记录生成的私钥和公钥文件的路径==,进入该路径下,可分别查看私钥和公钥的具体内容
2. github 公钥配置
登录 github,在Settings中找到SSH and GPG keys,点击New SSH key
输入title(自定义),将前边生成的公钥复制到Key中,点击Add SSH key
新增 SSH key 成功,可以在SSH Keys列表中看到刚刚配置的 SSH key
3. jenkins 配置全局凭证(github-sshkey)
进入用户凭据,点击Stores from parent中的Jenkins
点击全局凭据 (unrestricted)
点击添加凭据
类型选择SSH Username with private key,ID(会自动生成,建议不填),描述(有助于区分类似凭据的可选说明,建议填写),将生成的私钥复制到Private Key处,点击保存
新增凭据成功,可以在全局凭证列表中找到刚刚配置的凭证,后续也可以更新凭证信息
4. 创建任务
点击新建任务
输入任务名称(建议输入项目名称),选择构建一个自由风格的软件项目,点击确定
源码管理选择Git,将项目的 github ssh 链接复制到Repository URL,会出现类似无法连接到仓库的提示,此时在Credentials下拉选择刚刚配置的全局凭证,即可连接到 github 仓库,在指定分支处填写要部署的代码的分支
构建环境勾选Run the build in an NVM managed environment,此处依赖插件nvm-wrapper,在Node version处填写项目构建所对应的 node 版本
点击增加构建步骤,选择执行 Shell,将需要执行的 shell 命令填入输入框内
==以下是 shell 命令示例==(此处示例需要 nginx 服务)
# 项目名称
PROJECT_NAME="vue-test"
# nginx服务的资源目录
NGINX_DIR="/usr/share/nginx/html"
# jenkins中当前项目的工作空间
JENKINS_WORKSPACE="/root/.jenkins/workspace/${PROJECT_NAME}"
node --version
echo "开始安装依赖......"
npm cache clear --force
npm install
echo "安装依赖成功!"
echo "开始构建项目......"
npm run build
echo "构建项目成功!"
# 进入nginx服务的资源目录
cd ${NGINX_DIR}
echo "删除nginx服务中当前项目的资源目录"
rm -rf ${PROJECT_NAME}
echo "创建nginx服务中当前项目的资源目录"
mkdir ${PROJECT_NAME}
# 进入当前项目在jenkins中的工作空间
cd ${JENKINS_WORKSPACE}
echo "开始打包文件......"
cd dist
tar -cvf dist.tar *
echo "打包文件成功!"
echo "开始释放打包文件到nginx服务中当前项目的资源目录......"
tar -xvf dist.tar -C ${NGINX_DIR}/${PROJECT_NAME}
echo "释放打包文件到nginx服务中当前项目的资源目录成功!"
echo "开始删除当前项目在jenkins工作空间中的dist、node_modules目录......"
cd ..
rm -rf dist
rm -rf node_modules
echo "当前项目在jenkins工作空间中的dist、node_modules目录删除成功!"
echo "开始重启nginx......"
# 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx
nginx -s reload
echo "nginx重启成功!"
点击构建后操作步骤,选择Delete workspace when build is done,生成完成后删除工作区
点击立即构建,构建历史列表会出现正在构建的任务,点击进入本次构建
在控制台输出可以查看当前任务的工作空间以及 shell 命令执行日志
构建历史中,本次构建任务为绿色对号图标时,构建成功,如果失败,可以去控制台输出中查找失败原因
Jenkins 创建一个任务(svn)
参考地址:Jenkins 入门教程之安装 svn 插件并配置(九)(CSDN)
系统版本:CentOS7.9
前置需求:已安装 Subversion 插件
以下只阐述与创建 github 任务的不用之处
源码管理选择Subversion
填写 svn 项目地址
添加 svn 用户认证
添加 svn 用户认证,下图为用户名+密码的认证方式
Nginx
参考地址:CentOS 7 下安装配置 Nginx(腾讯云) 参考地址:Nginx 入门教程
系统版本:CentOS7.9
前置要求:已开启防火墙相应端口号
安装
1. 配置 EPEL 源
sudo yum install -y epel-release
sudo yum -y update
2. 安装 Nginx
sudo yum install -y nginx
输入命令启动 nginx 服务
nginx
本文档 Nginx 相关文件夹分别如下:
-
==默认的网站目录为:/usr/share/nginx/html==
-
==默认的配置文件为:/etc/nginx/nginx.conf==
-
自定义配置文件目录为: /etc/nginx/conf.d/
命令
参考地址:🚗 🚗 🚗 前端仔也需要懂的 nginx 内容(掘金)
以下命令仅供参考:
查看服务是否启动成功
ps -ef | grep nginx
CentOS 6.x 和 CentOS 7.x 中 Nginx 的操作命令(启动/重启/退出/...)
--------- CentOS 6.x 中 Nginx 的操作命令 ---------
# nginx // 不指定配置文件启动 Nginx,默认读取 /etc/nginx/nginx.conf 配置文件。
# nginx -c <配置文件> // 指定配置文件启动 Nginx 。
# nginx -t // 测试配置文件是否有语法错误,通过这种方式,也就知道了默认配置文件是哪个文件。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
# nginx -s reopen // 重启 Nginx
# nginx -s reload // 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx 。
# nginx -s stop // 强制停止 Nginx 服务
# nginx -s quit // 优雅地停止 Nginx 服务(即处理完所有请求后再停止服务)
--------- CentOS 7.x 中 Nginx 的操作命令 ---------
# systemctl start nginx.service // 启动 Nginx 服务
# systemctl stop nginx.service // 停止 Nginx 服务
# systemctl restart nginx.service // 重启 Nginx 服务
# systemctl reload nginx.service // 重新加载 Nginx 配置文件,然后以优雅的方式重启 Nginx 。
# systemctl status nginx.service // 查看状态
# systemctl enable nginx.service // 设置开机自启动
# systemctl disable nginx.service // 停止开机自启动
————————————————
nginxWebUI
系统版本:CentOS7.9
前置要求:Nginx 服务,已开启防火墙相应端口号,已安装 jdk
安装
1. 下载最新版发行包 jar
wget -O /home/nginxWebUI/nginxWebUI.jar http://file.nginxwebui.cn/nginxWebUI-3.3.3.jar
2. 启动程序
nohup java -jar -Dfile.encoding=UTF-8 /home/nginxWebUI/nginxWebUI.jar --server.port=8081 --project.home=/home/nginxWebUI/ > /dev/null &
3. 参数说明(都是非必填)
--server.port 占用端口, 默认以8080端口启动
--project.home 项目配置文件目录,存放数据库文件,证书文件,日志等, 默认为/home/nginxWebUI/
--spring.database.type=mysql 使用其他数据库,不填为使用本地h2,可选mysql
--spring.datasource.url=jdbc:mysql://ip:port/nginxwebui 数据库url
--spring.datasource.username=root 数据库用户
--spring.datasource.password=pass 数据库密码
注意Linux命令最后加一个&号, 表示项目后台运行
使用
==Nginx 服务的资源路径/usr/share/nginx/==
==Nginx 服务的默认配置文件路径/etc/nginx/nginx.conf==
==Nginx 服务的网页资源路径/usr/share/nginx/html/==
启用配置
首次启用配置需要进行的操作
- 设置 Nginx 服务的资源路径
例:/usr/share/nginx/
- Nginx 服务的默认配置文件路径
例:/etc/nginx/nginx.conf
==每次更新配置都需要进行的操作==
依次点击校验文件、替换文件、重新装载
-
校验文件:校验生成的配置文件是否符合规范
-
替换文件:将 nginxWebUI 生成的最新配置文件替换掉 Nginx 服务的默认配置文件
-
重新装载:重新启动 Nginx 服务,使最新配置生效
反向代理
配置好反向代理,才能通过 ip:port 访问网页等
代理静态 html
代理静态 html,才能实现通过 ip:port 来访问网页的功能
-
监听 ip 端口:填写需要监听的端口号(需要填写防火墙中已添加的端口号,否则无法通过外网访问)
-
监控路径:==/== 或 ==*==
-
代理类型:选择==静态 html==
-
代理目标:依次是模式、资源路径、默认页
- 模式:==root 模式==
- 资源路径:==选择要代理的网页资源路径==
- 默认页:可以不填
-
可以设置额外的配置参数
下图第一行是代理静态 html 的示例:
代理 http 接口请求
举个栗子:
/api ---> www.baidu.com,/google ---> www.google.com
-
监控路径:例/api(接口路径的匹配规则)
-
代理类型:选择==动态 http==
-
代理目标:依次是代理地址、是否携带 Host 参数、是否开启 WebSocket
- 代理地址:例www.baidu.com
- 携带 Host 参数:按实际需求选中
- 开启 WebSocket:按实际需求选中
-
可以设置额外的配置参数
下图第二行是代理 http 接口请求的示例:
进入启动配置,可以查看到最新生成的配置文件,要时期配置生效,请依次点击校验文件、替换文件、重新装载
设置额外参数(例:兼容 history 等)
举个栗子:==兼容 history 模式==的参数配置
参考地址:【nginx】History 模式的配置细节(掘金)
try_files $uri $uri/ /index.html;
点击设置额外参数
在弹窗中,可以通过添加参数进行手动填写,也可以通过添加模板来选择参数模板中已经配置好的通过参数
参数模板
配置一些常用的参数,比如兼容 history 模式的参数,可以配置到全局,也可以只是保存,在配置反向代理中的额外参数时进行手动选择
举个栗子:
兼容 history 模式的参数模板
-
模板名称:router-history(尽量语义化)
-
默认配置到:代理目标(location)(此参数模板会自动应用到 location,无需在额外参数中手动选择)
-
名称:参数配置的 key
try_files
-
值:参数配置的 value
$uri $uri/ /index.html
进入启动配置,可以查看到最新生成的配置文件,要时期配置生效,请依次点击校验文件、替换文件、重新装载
http 参数配置(日志等)
参考:Nginx 日志配置详解(SegmentFault) 参考:Nginx 日志配置的详细变量(官网)
对应 Nginx 配置中的 http {......}
可以自定义日志打印的内容等
举个栗子:自定义日志内容:请求地址、请求方法、代理地址、响应时间等
日志规则
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
输出路径
access_log /usr/share/nginx/logs/access.log main;
进入启动配置,可以查看到最新生成的配置文件,要时期配置生效,请依次点击校验文件、替换文件、重新装载
Nginx 日志查看
默认访问日志路径:
/var/log/nginx/access.log
默认错误日志路径:
/var/log/nginx/error.log
上边==http 参数配置中手动配置的日志路径==:
/usr/share/nginx/logs/access.log
需要手动添加日志文件,填入正确的日志路径,才能进行日志查看
日志追踪可以实时查看日志