ジェンキンスインストール展開プロジェクト、RabbitMQのインストール、nginxのインストール、NGIXのLuaスクリプトRedisの自動禁止高周波アクセスIPノート

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/awu_scanner/article/details/102742724

ノートを使用するためにいくつかのツールをインストールするには、開発プロセス。

、ジェンキンスインストール展開プロジェクト(例えば、クラウドコードGitee):


参考:HTTPS://blog.csdn.net/shuizhihun07/article/details/80168076
1.インストールJDK、達人、Gitのジェンキンスと環境変数を設定

インストールが完了したら、開始2:
   :最初のスタートは、次のエラー報告
    ジェンキンスbashの開始します。/ usr / bin / javaの:そのようなファイルまたはディレクトリ
    ソリューション:
    、候補者を/etc/init.d/jenkinsプロファイルを変更します。依存のjavaを追加しますJavaのプラスのインストールパスの最初の行:/home/jdk1.8.0_181/bin/javaとして
   起動後が完了したフロントページへのアクセス:最初の着陸は、キーが必要です:キー位置指令:猫の/ var / libに/ジェンキンス /秘密/ initialAdminPassword
あなたがログインした後に選択的に関連するプラグインをインストール3。

4.新規プロジェクト:Mavenプロジェクト

5.グローバル設定:
    -システム管理システム設定は、リモートホスト(リモートサーバの情報に展開する必要がある)-ssh
    :GiteeドメインURます。https://gitee.com証明書トークン:トークンの塗りつぶしを取得した後Gitee構成を

6.プロジェクトの設定警告:
    包装コマンド:クリーンtrueに-Dmaven.test.skip =をインストール
    PS:PS:-Dmaven.test.skip =ユニットテストをスキップ真手段に-コンパイラが行うものではありません。ただし、-Ptestテストは、指定されたことを示しています環境

    :リモートTomcatの設定するには、展開戦争のパッケージ
    次のコードでのTomcat-users.xmlの1.Tomcat-confに増加:
    <ユーザー名= "tomcat_admin"パスワード= "tomcat_admin"ロール=「GUIマネージャ、管理スクリプト、Tomcatを、 GUI-ADMIN、ADMIN-スクリプト「/>
    ユーザー名とパスワードを自由
    2.任意のIPアクセスを許可する:/home/apache-tomcat-8.5.5/webapps/manager/META-INF下context.xmlファイルを変更する
    値の変更を許可あります"^。* $" 

7:一般的に使用されるコマンド:
    ジェンキンスが有効systemctl
    ジェンキンスを再起動しsystemctl
 

二、RabbitMQのインストール:

参考ます。https://www.jianshu.com/p/ce725e41edab

PS:安装活启动报如下错误处理:
    トランザクションチェックエラー:
    ファイルは/ usr / binに/パッケージESL-のerlang-20.0から1からのファイルとのerlang-ERTS-20.0-1.el7.centos.x86_64競合のインストールEPMDから。 x86_64版
    のerlang-ERTS-20.0-1.el7.centos.x86_64パッケージESL-のerlang-20.0-1.x86_64からのファイルと競合し、インストールからファイルは/ usr / binに/ ERL
    erlang-のインストールからファイルは/ usr / binに/ erlc ERTS-20.0-1.el7.centos.x86_64パッケージESL-のerlang-20.0-1.x86_64からファイルとの衝突
    のerlang-ERTS-20.0-1.el7.centos.x86_64との競合のインストールからファイルは/ usr / binに/ escriptパッケージESL-のerlang-20.0-1.x86_64からファイル
    のerlang-ERTS-20.0-1.el7.centos.x86_64パッケージESL-のerlang-20.0-1.x86_64からのファイルと競合し、インストールからファイルは/ usr / binに/ run_erl
    erlang-ERTS-20.0-1.el7.centos.x86_64パッケージESL-のerlang-20.0-1.x86_64からのファイルと競合し、インストールからファイルは/ usr / binに/ to_erl
    のerlang-透析器のインストールからファイルは/ usr / binに/透析器パッケージESL-のerlang-20.0-1.x86_64からファイルと-20.0-1.el7.centos.x86_64競合
    ファイルとのerlang-common_test-20.0-1.el7.centos.x86_64競合のインストールからファイルは/ usr / binに/ ct_runパッケージESL-のerlang-20.0-1.x86_64からの
    注意:出现这种情况、运行如下命令
    yumの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-アーラン-20.0-1.x86_64

 

三、nginxのインストール:

参考ます。https://blog.csdn.net/t8116189520/article/details/81909574

启动报错:
nginxの:[エラー]オープン()は"/usr/local/nginx/logs/nginx.pid"失敗(2:そのようなファイルまたはディレクトリ)

解決策:
コマンドを実行しては/ usr / local / nginxの/ sbinに / nginxの-c /usr/local/nginx/conf/nginx.conf

コマンドを起動しますは/ usr / local / nginxの/ sbinに/ nginxの-c /usr/local/nginx/conf/nginx.conf
rebootコマンド:入力したCDは/ usr / local / nginxの/ sbinに/
./nginx -sリロード

 

四、nginxの+のLuaスクリプト+ Redisの自動禁止高周波アクセスIP:

参考ます。https://blog.csdn.net/weixin_43112000/article/details/86650107

インストールopenrestyは/ 1.13.6.1が完了し、正常に起動し、アクセスのluaスクリプトを書くことができ
、次のようにインストールディレクトリの下のnginxのopenrestyディレクトリの下に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

--脚本内容结束

ローカル(構成内の場所にあるサーバー)はLUAスクリプト、スクリプトが完了した後にインターセプトする必要がある、LUAスクリプト構成nginxの続くaccess_by_lua_file特定アドレス追加:
場所/テスト{
    #1 proxy_set_headerホスト$ホストを、
    Xをproxy_set_header -転送先については$ proxy_add_x_forwarded_forを;
    SET $リアルタイム$ HTTP_X_FORWARDED_FOR;
    IF(.... $レアル〜(\ D +)\(\ D +)\(\ D +)\(\ D +)、(*)){
        セット$リアルタイム$ 1 $ 2 $ 3。 。4 $;
    }
    proxy_set_header IP-X-リアルタイム実$;
    "LUA" BUSINESS $を設定します。
    /usr/local/openresty/nginx/conf/lua/access.lua access_by_lua_file;
    proxy_passのHTTP:// localhost:80に;
}
設定した後nginxのは、再起動することができます。再起動コマンド:nginxの-sリロード

PS:1、Redisのスクリプト接続IPとポートは、彼らの実際の状況に応じて
    、あなたがopenrestyをインストールする前に、nginxのを使用している場合は2、openresty下のconfディレクトリのnginxのにnginxの設定ファイルの前にコピーされ 
       、その後、関連を作ります他の文書の導入前は、nginxのを持っている場合は、設定には、注意がまたそれぞれのローカルファイルへのファイルパスにコピーまたは変更されます
 

おすすめ

転載: blog.csdn.net/awu_scanner/article/details/102742724
おすすめ