Nginx部署tomcat/wildfly集群負載均衡

来源:https://www.cnblogs.com/mushou/archive/2019/02/22/10417144.html
-Advertisement-
Play Games

1.調度器配置: docker run -p 80:80 --name nginx --restart=always -v /root/nginx/www/:/usr/share/nginx/html -v /root/nginx/conf/conf.d:/etc/nginx/conf.d -v / ...


1.調度器配置:

docker run -p 80:80 --name nginx --restart=always  -v /root/nginx/www/:/usr/share/nginx/html -v /root/nginx/conf/conf.d:/etc/nginx/conf.d  -v /root/nginx/logs:/var/log/nginx -v /etc/localtime:/etc/localtime -d nginx

將寫好的default.conf的nginx配置文件寫好,詳見文件其中包括兩台後端伺服器;

放到conf.d目錄,掛載到容器的/etc/nginx/conf.d;

將容器內的日誌/var/log/nginx映射出到 宿主機;

將宿主機時間映射到容器內;

2.後端伺服器配置:

1)搭建nfs伺服器共用

後端伺服器掛載該 nfs伺服器資源

2)搭建mysql57資料庫伺服器

3)部署應用服務(tomcat8)

docker run -d -p 8080:8080 -v /opt/server.xml:/usr/local/tomcat/conf/server.xml -v /opt/tomcat應用項目:/usr/local/tomcat/webapps/應用項目名  -v /etc/localtime:/etc/localtime -v /opt/應用項目/logs:/logs  -v /opt/應用項目/applog:/usr/local/tomcat/logs --name 應用項目 --restart=always  tomcat:8

將tomcat配置文件server.xml文件掛載到容器;

將應用掛載到容器中的/usr/local/tomcat/webapps;

將本地時間映射到容器;

將日誌映射到宿主機相應目錄;

--restart=always:總是重啟,便於重啟主機後不能自行啟動;

4)部署應用服務容器方式( jboss/wildfly)

先採用容器模式部署

docker run -d -p 80:8080 -p 9990:9990 -u root -v /etc/localtime:/etc/localtime 

-v /opt/jboss/standalone.xml:/opt/jboss/wildfly/standalone/configuration/standalone.xml

-v /opt/jboss/module/mysql-connector.jar:/opt/jboss/wildfly/standalone/deployments/mysql-connector.jar 

--name wildfly jboss/wildfly

將寫好的 wildfly的配置文件 standalone.xml文件掛載到容器目錄;

將jdbc 驅動 jar包放入容器內,以便建立jdbc 數據源使用;

編輯standalone.xml文件,

在<subsystem xmlns="urn:jboss:domain:datasources:2.0  標簽內添加datasources及driver:

例如:                   

<datasource jndi-name="java:jboss/datasources/MysqlDs" pool-name="MysqlDs" enabled="true" use-ccm="false">

                    <connection-url>jdbc:mysql://ip地址及埠/資料庫名稱?useSSL=true&amp;autoReconnect=true&amp;failOverReadOnly=false</connection-url> 

<driver>mysql-connector.jar</driver>mysql-connector.jar為啟動容器時掛載到deployments目錄的jar包

 <security>

      <user-name>*****</user-name>

       <password>******</password>

</security>

註意修改其中的參數( url   db_name   username   password)

3.session問題:

在nginx負載調度器中配置 ip_hash演算法,它會根據ip地址去找後端伺服器,session會根據ip保持;

4.採用Jenkins集成部署war包到wildfly

1)部署Jenkins

用容器方式: 

docker run -d -p 8002:8080  -u root

-v /etc/profile:/etc/profile

-v /usr/local/java:/usr/local/java

-v /usr/local/ant:/usr/local/ant 

-v /root/jenkins:/var/jenkins_home  

--name jenkins --restart=always jenkins/jenkins

將ant及java及環境文件掛到jenkins容器中;

2)啟動Jenkins及部署

添加插件

系統管理-插件管理-未安裝-jboss management plugin 、wildfly

系統管理-全局工具配置-新增ant

系統管理-全局工具配置-新增java

新建項目:源碼管理:https://svn伺服器IP地址/相關代碼目錄 

構建環境:with ant :ant、java

構建:ant

增加構建步驟:

Deploy War to Wildfly,此處可加入多台需要部署的後端伺服器,本文有兩台後端伺服器;

war包所在目錄:

Hostname:ip地址

Port:9990

User name:admin

Password:admin

 構建項目

出現錯誤:FATAL: Unable to initialize command context.

解決辦法:

將/Jenkins/ plugins/wildfly-deployer/WEB-INF/lib/wildfly-cli-8.2.1.Final.jar

/Jenkins/plugins/wildfly-deployer/WEB-INF/lib/wildfly-deployer.jar兩個文件拷貝至

/Jenkins/war/WEB-INF/lib目錄下,重新構建,成功。

3)重覆部署

出現錯誤java.lang.OutOfMemoryError: Java heap space

在wildfly的standalone.sh文件中加入

JAVA_OPTS="-Xms256m

-Xmx2048m

-XX:NewSize=256m

-XX:MaxNewSize=512m

-XX:PermSize=128m

-XX:MaxPermSize=256m

-XX:+UseConcMarkSweepGC

-XX:+CMSPermGenSweepingEnabled

-XX:+CMSClassUnloadingEnabled

-Djboss.platform.mbeanserver"

問題解決

5.完成了nginx作為調度器,後端有兩台tomcat或者wildfly的伺服器集群部署,同時在調度器上部署Jenkins,完成持續集成、部署。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、文件許可權 使用 ls -l 命令可以查看文件的具體屬性: 如圖所示,第一列所示告訴了用戶一個文件的類型和許可權信息: 1)第一個字元 "d",表明該文件是一個目錄文件; 2)r 表示該文件具有可讀許可權; 3)w 表示該文件具有寫許可權; 4)x 表示該文件具有可執行許可權。 5)第一個 rwx 表示該 ...
  • zabbix介紹 zabbix是一個基於WEB界面的提供分散式系統監視以及網路監視功能的企業級的開源解決方案。 zabbix能監視各種網路參數,保證伺服器系統的安全運營;並提供靈活的通知機制以讓系統管理員快速定位/解決存在的各種問題。 zabbix由2部分構成,zabbix server與可選組件z ...
  • 簡介 hash命令是bash的內置命令。 我們知道在bash中執行外部命令,會根據環境變數PATH來逐一搜索命令的路徑。 hash就是用於記住命令的路徑,並且在下次執行命令的時候直接通過hash獲取而不再通過PATH一步步尋找,加快了尋找命令的速度。 hash就像是命令的緩存。 語法 語法中的nam ...
  • 系統環境:jdk1.8,apache-tomcat-8.5.35 一、jvm優化 進入 bin/catalina.sh,修改JAVA_OPTS配置: JAVA_OPTS="-server -Xms8192M -Xmx8192M -XX:NewRatio=4 -XX:SurvivorRatio=8 - ...
  • 1、firewalld的基本使用 啟動: systemctl start firewalld 關閉: systemctl stop firewalld 查看狀態: systemctl status firewalld 開機禁用 : systemctl disable firewalld 開機啟用 : ...
  • Centos 安裝企業wiki confluence是一個專業的企業知識管理與協同軟體,可以用於構建企業wiki。通過它可以實現團隊成員之間的協作和知識共用。現在大多數公司都會部署一套confluence,用作內部wiki。現在confluence已收費,那麼下麵將介紹下安裝破解confluence ...
  • 轉自:http://blog.sina.com.cn/s/blog_537de4b5010128al.html Windows2008 安裝組件服務等內容比原來複雜的多,用滑鼠點來點去,既繁瑣也緩慢,所幸微軟提供了命令行工具ServerManagerCmd.exe 用法: ServerManager ...
  • 前言 安裝前的準備: 1.Chrome 瀏覽器的擴展插件來進行的安裝,並非單獨應用程式。 2.電腦上已經安裝了 Chrome 瀏覽器 3.本文章適用操作系統 window7 一,非官方安裝 個人不建議使用官方安裝(太慢了,限制太多主要是money有限啊!) 第一步:下載壓縮包,保存到自己喜歡的盤符( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...