java--Linux服務器環境搭建,以及Nginx反向代理

Linux系統java環境(以及Nginx反向代理)

主要安裝jdk和Tomcat環境

1.tomcat環境安裝
2.jak環境安裝以及環境變量配置

兩種方式:

第一種:使用yum方式安裝jdk

第二種:直接官網下載壓縮包進行安裝(以下只講第一種方式,安裝包自行前往官網下載)
下載完解壓到自己目錄下 命令解壓jdk到當前目錄:環境變量配合第一種方式進行配置

tar -zxvf jdk-8u60-linux-x64.tar.gz

一、安裝jdk和配置環境變量

1.查看yum中管理的可用的JDK軟件包列表:

yum search java | grep -i --color JDK

結果如下圖所示:
在這裏插入圖片描述

2.選擇合適版本,安裝jdk,本人選擇的是java-1.8.0-openjdk-devel.x86_64

yum install java-1.8.0-openjdk-devel.x86_64

出現如下顯示時輸入y,進行安裝

在這裏插入圖片描述

3.配置環境變量。下面直接上命令

vim /etc/profile

i (進入編輯狀態)

將下面三行代碼放在文件末尾

~~export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64(注意這行是照着別人寫的,結果報錯,我使用的下面那一行。具體看安裝的版本,請自行替換)~~ 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.el7_6.x86_64

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

按Esc(退出編輯狀態)

:wq(保存並退出)

source /etc/profile (讓設置立即生效)
在這裏插入圖片描述
java -version
在這裏插入圖片描述
能顯示以上信息,就說明安裝成功了。



二 、安裝tomcat

首先在tomcat官方下載tomcat文件,然後利用ftp工具上傳到linux服務器—自行百度下載ftp工具

tar zxvf apache-tomcat-8.5.37.tar.gz(執行命令解壓上傳的tomcat)

cd / (回到根目錄)

1、啓動tomcat

執行命令:/home/apache-tomcat8.5.37/bin/startup.sh(這個命令第一次安裝是用成功了,後面還是要進入bin目錄下,在輸入啓動命令,末尾有介紹)

在這裏插入圖片描述

2、開放8080端口

在linux上開啓的tomcat使用瀏覽器訪問不了。主要原因在於防火牆的存在,導致的端口無法訪問。

CentOS7使用firewall而不是iptables。所以解決這類問題可以通過添加firewall的端口,使其對我們需要用的端口開放。

1.使用命令 firewall-cmd --state查看防火牆狀態。
得到結果是running或者not running

2.在running 狀態下,向firewall 添加需要開放的端口,如果沒開啓 systemctl start firewalld 開啓即可

命令爲 firewall-cmd --permanent --zone=public --add-port=8080/tcp //永久的添加該端口。去掉–permanent則表示臨時。

與之對應關閉的命令爲firewall-cmd --zone=public --remove-port=8080/tcp --permanent

3.firewall-cmd --reload //加載配置,使得修改有效。

4.使用命令 firewall-cmd --permanent --zone=public --list-ports //查看開啓的端口,出現8080/tcp這開啓正確

5.再次使用外部瀏覽器訪問,這出現tomcat的歡迎界面。

6.查看netstat -tunlp

補充(CentOS7以下有專門的防火牆操作命令):
開啓防火牆的命令
systemctl start firewalld.service
關閉防火牆的命令
systemctl stop firewalld.service
開機自動啓動
systemctl enable firewalld.service
關閉開機自動啓動
systemctl disable firewalld.service
查看防火牆狀態
systemctl status firewalld下列顯示錶示沒有問題。









查看設置是否有效

firewall-cmd --zone=public --query-port=8080/tcp
 在這裏插入圖片描述

3.上傳部署java WEB項目

1.找到Tomcat下 conf/server.xml找到這個文件

使用命令:vi server.xml 修改文件配置

爲了方便截圖我這邊使用軟件打開xml文件

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

在這裏插入圖片描述

<Context path ="" docBase="自己的項目名.war"  reloadable="true"/>

在這裏插入圖片描述
上傳項目的war文件–(我這邊暫時用的是springboot)

在pom.xml裏面直接加上相關配置如圖

在這裏插入圖片描述
如何導出war文件?(這邊做Maven介紹)點擊如下就能自動生成
在這裏插入圖片描述
會生成一個target文件如圖(這個就是上傳服務器的文件)
在這裏插入圖片描述
一般默認情況下生成的都是系統默認的名稱,那如何自定義生成war文件名?
還是修改pom.xml文件,如圖,添加finlName標籤導出時的war文件就是當前的文件名
在這裏插入圖片描述
首先是上傳,但是100多M的war包用PuTTY竟然上傳失敗!沒辦法只好整了個xshell







關於Xshell,直接去官方網站下載,需要你填寫一個郵箱,然後你的郵箱會收到一個下載地址,點擊下載就好啦。安裝的時候選擇個人學校免費版本的就好了。

然後連接上Xshell,同樣是訪問 ip,用戶名,密碼這三個參數然後下面命令:

rz (查看是否安裝上傳工具rz 指上傳到linux服務器 )

yum install -y lrzsz (安裝上傳工具)

rz -be(或rz 選擇你要上傳的文件上傳即可,我用rz 命令失敗,涉及到二進制的問題)

特別說明:上傳的文件在你登錄的用戶名下,我用root登錄,因此上傳文件在root目錄下。害我找半天,不在home目錄下哦

然後把war移動到tomcat的webapps文件下,再重新啓動tomcat就好了。

所有上傳的項目必須放到webapps文件下

這裏多扯一句,如果有多個項目怎麼辦?如圖
在這裏插入圖片描述

Linux下tomcat服務的啓動、關閉與錯誤跟蹤,使用PuTTy遠程連接到服務器以後,通常通過以下幾種方

式啓動關閉tomcat服務: 切換到tomcat主目錄下的bin目錄(cd usr/local/tomcat/bin)
1,啓動tomcat服務 方式一:直接啓動 ./startup.sh 方式二:作爲服務啓動 nohup ./startup.sh &
方式三:控制檯動態輸出方式啓動 ./catalina.sh run 動態地顯示tomcat後臺的控制檯輸出信息,Ctrl+C後退出並關閉服務
解釋:
通過方式一、方式三啓動的tomcat有個弊端,當客戶端連接斷開的時候,tomcat服務也會立即停止,通過方式二可以作爲linux服務一直運行
通過方式一、方式二方式啓動的tomcat,其日誌會寫到相應的日誌文件中,而不能動態地查看tomcat控制檯的輸出信息與錯誤情況,通過方式三可以以控制檯模式啓動tomcat服務,
直接看到程序運行時後臺的控制檯輸出信息,不必每次都要很麻煩的打開catalina.out日誌文件進行查看,這樣便於跟蹤查閱後臺輸出信息。tomcat控制檯信息包括log4j和System.out.println()等輸出的信息。
2,關閉tomcat服務 ./shutdown.sh






如何隱藏端口?

方法一:修改tomcat server.xml文件
在這裏插入圖片描述
原理是:http請求的默認請求的是80端口,所以用80端口的話可以再域名後面省略端口號

那如果那咱就是想用8080端口又不想讓端口出現怎麼辦?

第二種方式Nginx的反向代理

安裝就不做過多介紹了

參考:Nginx安裝以及Linux系統命令

安裝完Nginx後我們需要修改nginx配置文件,在/opt/nginx/config/nginx.conf文件中:

server {
    listen       80;
    server_name  image.項目名.com;
	# 監聽域名中帶有group的,交給FastDFS模塊處理
    location ~/group([0-9])/ {
        ngx_fastdfs_module;
    }
    location / {
        root   html;
        index  index.html index.htm;
        proxy_pass:http://www.baidu.com:8080/;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

這裏需要注意到的是 proxy_pass這個是轉發到你的域名下面去,記住proxy_pass這個一定是你要轉發的域名確保能訪問到,listen會監聽到80端口的請求這時候我們就不用在訪問的時候帶上端口號了

最後來了幾個我這次遇到的大坑(來了上硬菜了)

騰訊雲服務器tomcat端口無法訪問

1.https://console.cloud.tencent.com/cvm/securitygroup 需要去這個地址設置安全組。

當然更改了安全組和防火牆還是不行。於是我查看Tomcat的記錄,發現:

/home/apache-tomcat-8.5.37/bin/catalina.sh: line 482: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-0.b13.el7_3.x86_64/bin/java: No such file or directory

很明顯是環境變量配置的問題。原因是我前面安裝圖簡單實用yum 安裝而環境變量又是網上copy的三行代碼,而自己根本沒有仔細查看是否對不對。

當然這個問題通過查看tomcat的運行狀態也可以看出來

ps -ef|grep tomcat
在這裏插入圖片描述
出現上圖,表示是有問題的

在這裏插入圖片描述
這個是正常的,也就是受java環境吧變量配置的影響。

實際安裝的jdk信息和環境變量配置的對不上。於是修改了環境變量中java的版本信息

在這裏插入圖片描述
第二種情況:

輸入命令 netstat -tunlp 可以看到8080端口根本就沒開放,如何訪問。

那麼如何開啓,因爲Centos7以上用firewalld代替了iptables,也就是說firewalld開通了8080端口應該就行了。

查看開放端口 netstat -tunlp

在這裏插入圖片描述
1.查看防火牆狀態。

firewall-cmd --state #查看防火牆狀態。

得到結果是running或者not running

如果沒開啓

systemctl start firewalld

2.在running 狀態下,向firewall 添加需要開放的端口

firewall-cmd --permanent --zone=public --add-port=8080/tcp
#永久的添加該端口。去掉–permanent則表示臨時。

與之對應關閉的命令爲

firewall-cmd --zone=public --remove-port=8080/tcp --permanent

3.加載配置,使得修改有效。

firewall-cmd --reload

使用命令 查看開啓的端口,出現8080/tcp這開啓正確

firewall-cmd --permanent --zone=public --list-ports

別忘了關鍵一步 再次啓動防火牆

systemctl start firewalld.service 

再查看端口8080就開放了
在這裏插入圖片描述
最坑爹的是騰訊雲的服務器,在這些和安全組都設置好以後。你得等待一會,然後訪問Tomcat就成功了。期間發生的訪問錯誤都與操作無關。延時很嚴重。

以上是這次自己部署騰訊雲遇到的一些坑,耗費了不少時間,希望能給你們帶來幫助,網上查閱了不少資料,總結這篇文章,如有錯誤望指出立馬修正

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章