Linux下使用Nginx

 

模擬tomcat集羣

一、下載tomcat7,/usr/local下新建目錄tomcat,將tomcat7剪切到/usr/local/tomcat

wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.100/bin/apache-tomcat-7.0.100.tar.gz
mkdir /usr/local/tomcat
mv /root/apache-tomcat-7.0.100.tar.gz /usr/local/tomcat

 

 

 

二、解壓,複製一份,分別重命名爲tomcat一、tomcat2

cd /usr/local/tomcat
tar -zxvf apache-tomcat-7.0.100.tar.gz
rm apache-tomcat-7.0.100.tar.gz
mv apache-tomcat-7.0.100 tomcat1
cp -r tomcat1 tomcat2

 

 

 

三、修改tomcat2使用的端口號,避免與tomcat1使用的端口號衝突

vim tomcat2/conf/server.xml

 

 

 

四、分別在2個tomcat的satrtup.sh中設置CATALINA_HOME

vim tomcat1/bin/startup.sh

開頭添加一行:html

export CATALINA_HOME=/usr/local/tomcat/tomcat1

一樣的方式修改tomcat2,把tomcat1換成tomcat2便可。linux

 

其實就是配置CATALINA_HOME環境變量,也能夠在/etc/profile中配置環境變量CATALINA_HOME_TOMCAT一、CATALINA_HOME_TOMCAT2,值分別是tomcat一、2的主目錄,nginx

而後分別2個tomcat的stratup.sh中引用export CATALINA_HOME=$CATALINA_HOME_TOMCAT1|2引用,麻煩些。c++

 

 

 

五、設置防火牆,打開8080、8081端口。

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent

重啓防火牆生效:正則表達式

firewall-cmd --reload

我把tomcat2的端口改成8081,因此打開的是8081,使用哪一個就打開哪一個。apache

若是要使用https、ajp,天然也要打開對應的端口。vim

CentOS7以前使用itables命令控制端口,CentOS7即以後的版本使用firewall-cmd命令控制端口。windows

 

 

 

六、分別啓動tomcat一、tomcat2,在Windows瀏覽器上已能訪問Linux上的tomcat一、tomcat2

tomcat1/bin/startup.sh
tomcat2/bin/startup.sh

windows瀏覽器地址欄分別輸入:瀏覽器

192.168.43.143:8080
192.168.43.143:8081

顯示tomcat的首頁,配置成功。tomcat

 

Linux機器的ip要換爲你的,可ifconfig查看:

 

 


 

 

Nginx的使用

Nginx的windows版已經編譯打包爲.exe,直接用就好了,Linux版未編譯,須要本身編譯。

 

Nginx所需的依賴

  • gcc

      gcc是在類Unix系統上使用的c語言的編譯器,包含了編譯c語言所需的庫,nginx是c語言寫的,編譯時天然須要gcc庫。 

 

  • pcre

       pcre是一個Perl的正則表達式庫,nginx的http模塊使用pcre來解析正則表達式,須要在linux上安裝pcre庫。

  須要pcre、pcre-devel2個庫。

 

  • zlib

       zlib庫提供了不少種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,須要在linux上安裝zlib庫。

  須要zlib、zlib-devel2個庫。

 

  • openssl

       nginx不只支持http協議,還支持https,使用https須要在linux安裝openssl庫。

    須要openssl openssl-devel2個庫。

 

gcc只包含c的編譯器,gcc-c++包含c、c++的編譯器,安裝哪一個都行。

pcre、zlib、openssl都須要2個庫,帶devel的是nginx編譯時用的庫,不帶的是nginx運行時須要的庫。

 

 

 

一、安裝依賴

一次性所有安裝:

yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel

已安裝的會自動跳過。

 

yum -y install gcc automake autoconf libtool make

gcc須要配置一下,單獨安裝。若是不配置,執行gcc的make、make install命令時會出現「找不到命令」的錯誤。

 

 

很閒的能夠依次檢查:gcc、pcre、pcre-devel、zlib、zlib-devel、openssl、openssl-devel,未安裝的安裝上

yum list installed | grep pcre
yum -y install pcre

 

 

 

二、下載Linux版本的nginx,放到/usr/local/nginx,解壓

mkdir /usr/local/nginx
cd /usr/local/nginx
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -xzvf nginx-1.16.1.tar.gz
rm nginx-1.16.1.tar.gz

 

 

 

三、進入解壓出來的目錄,編譯、安裝

cd nginx-1.16.1

這個目錄下有個src文件夾,放着nginx的源碼,全是.c、.h文件。

 

 

./configure --prefix=/usr/local/nginx

運行解壓目錄下的configure文件,檢查配置,並自動建立一個objs目錄,objs下建立多個空目錄,用來存放編譯產生的文件。

--prefix指定nginx的安裝目錄。

 

 

 檢查配置時最好在nginx下新建一個temp目錄,而後把上面這堆臨時文件的保存路徑改了,nginx後面加/temp,否則運行nginx後,nginx下會產生一堆臨時文件的目錄。

 

 

 

make

編譯,將編譯產生的文件放到objs中。

 

 

make install

安裝,會安裝在prefix指定的目錄(nginx)下。

看到nginx下生成4個目錄:sbin  放置可執行程序(只有一個nginx),conf  放置配置文件,logs  放置日誌,html  放置html文檔。

 

 

將解壓的目錄刪除:

cd ..
rm -r nginx-1.16.1

 

 

 

四、看下防火牆打開80端口沒有,默認是沒有打開的,須要咱們打開

firewall-cmd --query-port=80/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
fire-wall --reload

 

 

 

五、啓動nginx

sbin/nginx

執行sbin下的nginx即啓動nginx,Linux本地瀏覽器輸入localhost可看到Nginx首頁,windows瀏覽器輸入Linux的ip地址也可看到nginx的首頁。(默認就是80端口)

 

 


 

 

nginx的經常使用命令

  • whereis nginx  查看nginx的主目錄

 

  • nginx  啓動nginx
  • nginx -s stop  中止nginx
  • nginx -s quit  中止並退出nginx
  • nginx -s reload  從新加載配置文件
  • nginx -t 檢測配置文件中的配置是否正確
  • nginx -v  查看nginx版本

 

修改nginx的配置文件後,通常都是先nginx -t測試下,沒問題再nginx -s reload從新加載配置。

 

以上5個命令(不包括whereis nginx)的三種執行方式:

  • 絕對路徑執行,/usr/local/nginx/sbin/nginx
  • 相對路徑執行,好比當前目錄時/usr/local,直接nginx/sbin/nginx  執行
  • 切換到nginx的sbin目錄,./nginx執行。若是當前目錄時要執行文件的上一級,必須加./表示當前目錄下。

Linux上全部可執行文件均可以這麼執行。

 

 


 

 

開機啓動

設置tomcat一、tomcat二、nginx的開機啓動:

vim /etc/rc.d/rc.local

把啓動的程序加進去便可。

 

 


 

 

使用nginx實現負載均衡

咱們在tomcat一、tomcat2上部署一個相同的項目,爲了方便看效果,分別將部署在tomcat一、tomcat2上的test的index.jsp的<body>改成tomcat1,tomcat2。

 

修改nginx的conf/nginx.conf:添加紅框的2處

 

重啓Linux,由於咱們設置了開機自啓,會自動開啓tomcat一、tomcat二、nginx。

在windows地址欄輸入:Linux機器ip/項目名,多刷新幾回,看到tomcat一、tomcat2交替處理。

 

 


 

 

nginx的官方文檔:

http://nginx.org/en/docs/

相關文章
相關標籤/搜索