搭建java基本服務(wù)------防忘專用

? ? ? ? 對(duì)于我們后臺(tái)開(kāi)發(fā)人員來(lái)說(shuō),很多時(shí)候去了公司第一件事就是安裝各種環(huán)境,有的是用在電腦上,有的是在虛擬機(jī)上面,電腦上面的一般都比較好裝,虛擬機(jī)上面很多就是通過(guò)命令,一般情況,換一次工作使用一次,不知道有多少人能記得比較清楚,反正我是不記得的。所以寫(xiě)一點(diǎn)自己在自己虛擬機(jī)上面的搭建方式,哪天忘記了再來(lái)看看。當(dāng)然百度一下也有一大堆的。我自己記一下加深一下印象吧。

????????首先我們的java,不說(shuō)了,記得設(shè)置環(huán)境變量就可以了。win7在高級(jí)系統(tǒng)設(shè)置->環(huán)境變量->%JAVA_HOME%\bin;?JAVA_HOME就是jdk的安裝目錄了,這樣在任何目錄下都可以執(zhí)行java相關(guān)命令了,話說(shuō)我沒(méi)有專門(mén)配置classpath也運(yùn)行的挺好的,所以我一直沒(méi)有配。。。 mac的話稍微麻煩點(diǎn),因?yàn)槭欠耹inux的,所以需要命令進(jìn)行打開(kāi)/etc/profile文件,輸入path和classpath內(nèi)容,看這個(gè)鏈接吧https://www.cnblogs.com/zjx2711904647/p/7735556.html;

? ? ? ? ?IDEA大家可能用習(xí)慣了eclipse之后不喜歡換這個(gè),但是只要你熟悉了這個(gè)之后,你一定不喜歡再用eclipse了,比如我,用了半年就很不喜歡eclipse了,尷尬。關(guān)于破解版,我有一個(gè)方法,如下:(mac版)

下載旗艦版?https://www.jetbrains.com/idea/download/#section=mac

解壓縮安裝,啟動(dòng)IDEA一次。

訪問(wèn)?http://idea.lanyus.com?,下載JetbrainsCrack-2.7-release-str.jar

將JetbrainsCrack-2.7-release-str.jar 放置到 IDEA/Contents/bin 文件夾下面

編輯idea.vmoptions, 增加一行:

-javaagent:JetbrainsCrack-2.7-release-str.jar

重新啟動(dòng)IDEA

填入http://idea.lanyus.com?上面的注冊(cè)碼,注冊(cè)后重啟。

? ? mysql:有兩篇挺好的文章,分享一下,我win7和mac各裝過(guò)一次,都是百度的,快忘光了。https://www.cnblogs.com/sshoub/p/4321640.html;https://www.cnblogs.com/chengxs/p/5986095.html;https://blog.csdn.net/u012721519/article/details/55002626(這個(gè)用來(lái)卸載了,mac版,我沒(méi)干過(guò))

? ? ? ? 好了,下面才是我想說(shuō)的關(guān)于在linux下裝的東西,nginx,tomcat,redis單機(jī)和集群,zookeeper單機(jī)和集群。

????????nginx:(有點(diǎn)雜亂,因?yàn)楹芏喽际俏乙郧暗墓P記復(fù)制的)

首先這個(gè)是c語(yǔ)言開(kāi)發(fā)的,先yum –y install gcc-c++ 安裝c的環(huán)境,然后安裝pcre用于正則解析http模塊,yum install -y pcre pcre-devel,還有http內(nèi)容的壓縮格式,gzip解壓和壓縮,yum install -y zlib zlib-devel。最后就是https的ssl密鑰相關(guān)東西了,yum install -y openssl openssl-devel,這些都是基本環(huán)境的搭建。之后開(kāi)始nginx的搭建;

? ? ? ? 上傳,解壓都不用重復(fù)了,之后就是nginx的一些配置了,有點(diǎn)多,建議初學(xué)者復(fù)制,參數(shù)設(shè)置如下:

./configure \

--prefix=/usr/local/nginx \

--pid-path=/var/run/nginx/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/var/log/nginx/error.log \

--http-log-path=/var/log/nginx/access.log \

--with-http_gzip_static_module \

--http-client-body-temp-path=/var/temp/nginx/client \

--http-proxy-temp-path=/var/temp/nginx/proxy \

--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \

--http-scgi-temp-path=/var/temp/nginx/scgi

注意:上邊將臨時(shí)文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄

mkdir -p /var/temp/nginx。。。之后編譯安裝,make make install,安裝完成就是在sbin目錄下直接啟動(dòng)nginx了。注意:執(zhí)行./nginx啟動(dòng)nginx,這里可以-c指定加載的nginx配置文件,如下:./nginx -c /usr/local/nginx/conf/nginx.conf。如果不指定-c,nginx在啟動(dòng)時(shí)默認(rèn)加載conf/nginx.conf文件,此文件的地址也可以在編譯安裝nginx時(shí)指定./configure的參數(shù)(--conf-path= 指向配置文件(nginx.conf))。

? ? 停止和重啟nginx,./nginx -s quit(不要使用stop,那樣會(huì)將正在執(zhí)行的任務(wù)直接kill),重啟:建議先quit再啟動(dòng),reload是用于重新加載配置的。

? ? ? ? 配置虛擬主機(jī),修改/usr/local/nginx/conf/nginx.conf文件,添加兩個(gè)虛擬主機(jī),如下:

#配置虛擬主機(jī)aaa.test.com?

server {

#監(jiān)聽(tīng)的ip和端口,配置本機(jī)ip和端口

????????listen 192.168.101.3:80;

#虛擬主機(jī)名稱是aaa.test.com,請(qǐng)求域名aaa.test.com的url將由此server配置解析

????????server_name aaa.test.com; ?

#所有的請(qǐng)求都以/開(kāi)始,所有的請(qǐng)求都可以匹配此location

????????location / {

#使用root指令指定虛擬主機(jī)目錄即網(wǎng)頁(yè)存放目錄

#比如訪問(wèn)http://ip/test.html將找到/usr/local/aaa_html/test.html

#比如訪問(wèn)http://ip/item/test.html將找到/usr/local/aaa_html/item/test.html

????????????????root /usr/local/aaa_html;

#指定歡迎頁(yè)面,按從左到右順序查找

????????????????index index.html index.htm;

????????}

????}

#配置虛擬主機(jī)bbb.test.com

????server {

????????listen 192.168.101.3:80;

????????server_name bbb.test.com;

????????location / {

????????????????root /usr/local/bbb_html;

????????????????index index.html index.htm;

????????}

????}

最后配置兩個(gè)tomcat反向代理

#配置一個(gè)代理即tomcat1服務(wù)器

upstream tomcat_server1 {

????????????server 192.168.101.5:8080;

????????}

#配置一個(gè)代理即tomcat2服務(wù)器

????upstream tomcat_server2 {

????????????server 192.168.101.6:8080;

????????}

#配置一個(gè)虛擬主機(jī)

????server {

????????listen 80;

????????server_name aaa.test.com;

????????location / {

#域名aaa.test.com的請(qǐng)求全部轉(zhuǎn)發(fā)到tomcat_server1即tomcat1服務(wù)上

????????????????proxy_pass http://tomcat_server1;

#歡迎頁(yè)面,按照從左到右的順序查找頁(yè)面

????????????????index index.jsp index.html index.htm;

????????}

????}

????server {

????????listen 80;

????????server_name bbb.test.com;

????????location / {

#域名bbb.test.com的請(qǐng)求全部轉(zhuǎn)發(fā)到tomcat_server2即tomcat2服務(wù)上

??????????????????proxy_pass http://tomcat_server2;

??????????????????index index.jsp index.html index.htm;

????????}

????}

負(fù)載均衡配置,根據(jù)上邊的需求在nginx.conf文件中配置負(fù)載均衡,如下:

upstream tomcat_server_pool{

????????server 192.168.101.5:8080 weight=10;

????????server 192.168.101.6:8080 weight=10;

????????}

????server {

????????listen 80;

????????server_name aaa.test.com;

????????location / {

?????????????????proxy_pass http://tomcat_server_pool;

?????????????????index index.jsp index.html index.htm;

????????}

????}

配置nginx的高可用,主備 ,首先需要keepalived的軟件用于心跳檢測(cè),rpm –ivh keepalived-1.2.13-5.el6_6.i686.rpm。。之后配置keepalived。

修改主nginx下/etc/keepalived/keepalived.conf文件

! Configuration File for keepalived

#全局配置

global_defs {

notification_email { ?#指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè)

?????XXX@XXX.com

???}

notification_email_from XXX@XXX.com ?#指定發(fā)件人

#smtp_server XXX.smtp.com ????????????????????????????#指定smtp服務(wù)器地址

#smtp_connect_timeout 30 ??????????????????????????????#指定smtp連接超時(shí)時(shí)間

router_id LVS_DEVEL ???????????????????????????????????#運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)

}


vrrp_instance VI_1 {

state MASTER ??????????#標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP

interface eth0 ????????#設(shè)置實(shí)例綁定的網(wǎng)卡

virtual_router_id 51 ??#同一實(shí)例下virtual_router_id必須相同

priority 100 ??????????#MASTER權(quán)重要高于BACKUP 比如BACKUP為99 ?

advert_int 1 ??????????#MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒

authentication { ??????#設(shè)置認(rèn)證

auth_type PASS ????#主從服務(wù)器驗(yàn)證方式

????????auth_pass 8888

????}

virtual_ipaddress { ???#設(shè)置vip

192.168.101.100 ??????#可以多個(gè)虛擬IP,換行即可

????}

}

[if !supportLists]1.1.1.1?[endif]備nginx

修改備nginx下/etc/keepalived/keepalived.conf文件

配置備nginx時(shí)需要注意:需要修改state為BACKUP , priority比MASTER低,virtual_router_id和master的值一致

! Configuration File for keepalived

#全局配置

global_defs {

notification_email { ?#指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè)

????XXX@XXX.com

???}

???notification_email_from XXX@XXX.com?? #指定發(fā)件人

???#smtp_server XXX.smtp.com ???????????????????????????? #指定smtp服務(wù)器地址

#smtp_connect_timeout 30 ??????????????????????????????#指定smtp連接超時(shí)時(shí)間

router_id LVS_DEVEL ???????????????????????????????????#運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)

}


vrrp_instance VI_1 {

state BACKUP ??????????#標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP

interface eth0 ????????#設(shè)置實(shí)例綁定的網(wǎng)卡

virtual_router_id?51 ??#同一實(shí)例下virtual_router_id必須相同

priority 99 ???????????#MASTER權(quán)重要高于BACKUP 比如BACKUP為99 ?

advert_int 1 ??????????#MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒

authentication { ??????#設(shè)置認(rèn)證

auth_type PASS ????#主從服務(wù)器驗(yàn)證方式

????????auth_pass 8888

????}

virtual_ipaddress { ???#設(shè)置vip

192.168.101.100 ??????#可以多個(gè)虛擬IP,換行即可

????}

}

? ? 因?yàn)橛锌赡艹霈F(xiàn)nginx全部掛掉,但是keepalived沒(méi)有掛掉的情況,這個(gè)可以寫(xiě)一個(gè)腳本,#!/bin/bash

#如果進(jìn)程中沒(méi)有nginx則將keepalived進(jìn)程kill掉

A=`ps -C nginx --no-header |wc -l` ?????##查看是否有 nginx進(jìn)程 把值賦給變量A

if [ $A -eq 0 ];then ???????????????????##如果沒(méi)有進(jìn)程值得為 零

service keepalived stop ?????????##則結(jié)束 keepalived 進(jìn)程

fi? 然后拷貝到/etc/keepalived下,即可。

修改主nginx的keepalived.conf,添加腳本定義檢測(cè):

注意下邊紅色標(biāo)識(shí)地方:


#全局配置

global_defs {

notification_email { ?#指定keepalived在發(fā)生切換時(shí)需要發(fā)送email到的對(duì)象,一行一個(gè)

?????XXX@XXX.com

???}

notification_email_from miaoruntu@itcast.cn ?#指定發(fā)件人

#smtp_server XXX.smtp.com ????????????????????????????#指定smtp服務(wù)器地址

#smtp_connect_timeout 30 ??????????????????????????????#指定smtp連接超時(shí)時(shí)間

router_id LVS_DEVEL ???????????????????????????????????#運(yùn)行keepalived機(jī)器的一個(gè)標(biāo)識(shí)

}

vrrp_script check_nginx {

script "/etc/keepalived/check_nginx.sh" ????????##監(jiān)控腳本

interval 2 ?????????????????????????????????????##時(shí)間間隔,2秒

weight 2 ???????????????????????????????????????##權(quán)重

}

vrrp_instance VI_1 {

state MASTER ??????????#標(biāo)示狀態(tài)為MASTER 備份機(jī)為BACKUP

interface eth0 ????????#設(shè)置實(shí)例綁定的網(wǎng)卡

virtual_router_id 51 ??#同一實(shí)例下virtual_router_id必須相同

priority 100 ??????????#MASTER權(quán)重要高于BACKUP 比如BACKUP為99

advert_int 1 ??????????#MASTER與BACKUP負(fù)載均衡器之間同步檢查的時(shí)間間隔,單位是秒

authentication { ??????#設(shè)置認(rèn)證

auth_type PASS ????#主從服務(wù)器驗(yàn)證方式

????????auth_pass 8888

????}

???track_script {

check_nginx ???????#監(jiān)控腳本

???}

virtual_ipaddress { ???#設(shè)置vip

192.168.101.100 ??????#可以多個(gè)虛擬IP,換行即可

????}

}

修改后重啟keepalived;

還有緩存配置,不寫(xiě)了,因?yàn)樯洗尾涣宋募?。。我這個(gè)已經(jīng)很難看了,所以再寫(xiě)點(diǎn)其他的好了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,537評(píng)論 19 139
  • 前言: 之前想著每天都更新一篇文章,但是連續(xù)幾天之后,發(fā)現(xiàn)有好多博客大佬,所以覺(jué)得還是不要獻(xiàn)丑好一點(diǎn),然后就學(xué)習(xí)一...
    SuperGu閱讀 1,435評(píng)論 1 0
  • 轉(zhuǎn)載自:http://blog.csdn.net/u010391029/article/details/48311...
    Chris_Zheng閱讀 1,542評(píng)論 0 2
  • 一、高可用集群 (一)提升系統(tǒng)高可用性的解決方案:冗余(redundant) 工作模式active/passive...
    哈嘍別樣閱讀 1,805評(píng)論 2 5
  • 時(shí)間是這個(gè)世界上最快的東西,我們總是在驀然回首的時(shí)候才發(fā)現(xiàn),時(shí)間轉(zhuǎn)瞬即逝,一年一晃而過(guò),用”一眨眼”來(lái)形容實(shí)在不是...
    我是長(zhǎng)今閱讀 435評(píng)論 3 3

友情鏈接更多精彩內(nèi)容