作者:mobiledu2502898417 | 来源:互联网 | 2023-07-28 17:35
开发过程中一些工具的安装使用笔记。。。。。一、jenkins安装部署项目(码云为例Gitee):参考:https:blog.csdn.netshuizhihun07articled
开发过程中一些工具的安装使用笔记。。。。。
一、jenkins 安装部署项目(码云为例Gitee):
参考:https://blog.csdn.net/shuizhihun07/article/details/80168076
1. 安装 jdk 、maven、git jenkins 并设置环境变量
2. 安装完成后启动:
首次启动报如下错误:
Starting Jenkins bash: /usr/bin/java: No such file or directory
解决方法:
添加java依赖:修改/etc/init.d/jenkins 配置文件,在candidates 第一行加上java的安装路径:如/home/jdk1.8.0_181/bin/java
启动完成后访问到首页:首次登陆需要密匙:密匙位置命令:cat /var/lib/jenkins/secrets/initialAdminPassword
3.登陆完成后 可选择性安装相关插件
4.新建工程:maven工程
5.全局配置:
系统管理-系统设置-SSH remote hosts(需要部署到的远程服务器信息)
Gitee 配置:Gitee 域名 UR:https://gitee.com 证书令牌:获取token后填写
6.工程配置需要注意的地方:
打包命令:clean install -Dmaven.test.skip=true
ps:ps:-Dmaven.test.skip=true表示跳过测试单元-不编译不执行,-Ptest test表示指定环境
部署war包到远程Tomcat需要配置:
1.Tomcat-conf下的Tomcat-users.xml 增加下面代码:
username和password随意
2.授权任何IP访问:更改/home/apache-tomcat-8.5.5/webapps/manager/META-INF 下的context.xml文件
allow的值改为 "^.*$"
7:常用命令:
systemctl enable jenkins
systemctl restart jenkins
二、rabbitmq 安装:
参考:https://www.jianshu.com/p/ce725e41edab
ps:安装活启动报如下错误处理:
Transaction check error:
file /usr/bin/epmd from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/erl from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/erlc from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/escript from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/run_erl from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/to_erl from install of erlang-erts-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/dialyzer from install of erlang-dialyzer-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
file /usr/bin/ct_run from install of erlang-common_test-20.0-1.el7.centos.x86_64 conflicts with file from package esl-erlang-20.0-1.x86_64
注意:出现这种情况,运行如下命令
yum remove esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64 esl-erlang-20.0-1.x86_64
三、 nginx 安装 :
参考:https://blog.csdn.net/t8116189520/article/details/81909574
启动报错:
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
解决:
执行命令/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
启动命令:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
重启命令:进入 cd /usr/local/nginx/sbin/
./nginx -s reload
四、nginx + Lua脚本 + redis 实现自动封禁高频率访问IP:
参考:https://blog.csdn.net/weixin_43112000/article/details/86650107
安装openresty/1.13.6.1 完成 并能正常启动访问后 编写lua脚本
在openresty 安装目录下的nginx目录下的conf目录下创建access.lua 文件,文件内容如下:
--脚本文件内容开始
local ip_block_time = 120 --封禁IP时间 单位:秒
local ip_time_out = 10 --指定IP访问频率时间段 单位:秒
local ip_max_count = 30 --指定IP访问频率计数最大值 单位:秒
local ret_code=200
local BUSINESS = ngx.var.business --nginx的location中定义的业务标识符,也可以不加,不过加了后方便区分
local headers=ngx.req.get_headers()
local ip_addr=headers["X-REAL-IP"] or headers["X_FORWARDED_FOR"] or ngx.var.remote_addr
--ngx.var.remote_addr
--连接 Redis
local redis = require "resty.redis"
local cOnn= redis.new()
conn:set_timeout(3000) --超时时间 2秒
local ok, orr = conn:connect("127.0.0.1",6379)
if not ok then
--ngx.say("failed to connect: ", err)
goto FLAG
else
--ngx.say("redis connetc success !!!")
--身份验证 密码
conn:auth("123cjdg19071702156")
end
--查询ip是否被禁止访问,如果存在则返回403错误代码
is_block, err = conn:get(BUSINESS.."_BLOCK_"..ip_addr)
if is_block == ngx.null then
ret_code = 200
end
if is_block == '1' then
--ngx.say("---封禁开始---", ngx.var.remote_addr)
ret_code = 403
conn:close()
ngx.exit(403)
--goto FLAG
end
--查询Redis中保存的IP的计数器
ip_count = conn:get(BUSINESS.."_COUNT_"..ip_addr)
if ip_count == ngx.null then --如果不存在,则将改IP存入Redis,并将计数器设置为1,该KEY的超时时间为ip_time_out
res, err = conn:set(BUSINESS.."_COUNT_"..ip_addr,1)
res, err = conn:expire(BUSINESS.."_C0UNT_"..ip_addr, ip_time_out)
else
ip_count = ip_count + 1 --存在将访问次数加1
if ip_count >= ip_max_count then --如果超过单位时间限制的访问次数,则添加限制访问标识,限制时间为ip_block_time
res, err = conn:set(BUSINESS.."_BLOCK_"..ip_addr, 1)
res, err = conn:expire(BUSINESS.."_BLOCK_"..ip_addr, ip_block_time)
else
res, err = conn:set(BUSINESS.."_COUNT_"..ip_addr, ip_count)
res, err = conn:expire(BUSINESS.."_COUNT_"..ip_addr, ip_time_out)
end
end
--此处 第一次设置缓存时失效时间未设置成功(具体原因未找到) 故用一下代码判断并设置失效时间
ip_ttl = conn:ttl(BUSINESS.."_COUNT_"..ip_addr)
if ip_ttl == '-1' or ip_ttl ==-1 then
conn:expire(BUSINESS.."_COUNT_"..ip_addr, ip_time_out)
end
--结束标记
::FLAG::
local ok, err = conn:close()
return ret_code
--脚本内容结束
脚本编写完成后配置nginx,在需要拦截的地方(server中的location 中配置)加入lua脚本,access_by_lua_file 后跟lua脚本的具体地址:
location /test {
# proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set $Real $http_x_forwarded_for;
if ($Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+),(.*)){
set $Real $1.$2.$3.$4;
}
proxy_set_header X-Real-IP $Real;
set $BUSINESS "LUA";
access_by_lua_file /usr/local/openresty/nginx/conf/lua/access.lua;
proxy_pass http://localhost:80;
}
配置 完成后 重启nginx即可。重启命令:nginx -s reload
ps:1、脚本中连接redis 的IP 和端口 根据自己的实际情况修改
2、如果在安装openresty 之前 已经使用nginx了,将之前nginx的配置文件 复制到openresty 下的nginx的conf目录下
然后再做相关配置,如果之前nginx中有引入其他的文件,注意将文件也一并复制到相应地方或者修改 文件的指向路径