windows下使用Nginx


 

Nginx是一個高性能的HTTP和反向代理web服務器,同時也提供了IMAP/POP3/SMTP服務(郵件服務)。

 

 

 


 

 

Tomcat集群

1、下載tomcat,解壓,復制一份,分別將文件夾重命名為tomcat1、tomcat2

 

 

 

2、修改conf/server.xml中使用的端口號,避免端口沖突

tomcat1的端口:

 

 

 

tomcat1使用默認的端口即可。

http那個connector是建立http連接的(http協議),有這個標簽才能成為web服務器,才能和客戶端連接上。

nginx+tomcat,ajp連接用不上,完全可以注釋掉。

同一個tomcat進程內,可以共用一個端口,所以2個重定向使用的端口可以相同。

 

 

tomcat2的端口:

很多教程的重定向端口都沒有改,因為一個小demo,也用不上重定向。

 

 

3、用記事本打開bin/startup.bat,分別在開頭加上

set TITLE="tomcat1"
set CATALINA_HOME="D:\tomcat1"
set TITLE="tomcat2"
set CATALINA_HOME="D:\tomcat2"

TITLE是啟動tomcat時彈出的windows的黑框框的窗口標題,這個無關緊要。

CATALINA_HOME是tomcat的主目錄的路徑,啟動tomcat時會檢測startup.bat中是否設置了CATALINA_HOME,設置了就使用設置的,未設置就使用環境變量中的CATALINA_HOME,如果環境變量中也未設置,一閃而過啟動失敗。

啟動的是CATALINA_HOME指定的tomcat,不是你雙擊|調用哪個tomcat的startup.bat就啟動哪個tomcat。

只能寫在startup.bat中,如果把值都寫在環境變量CATALINA_HOME中,鬼知道你要啟動哪個tomcat。

startup.bat中設置的CATALINA_HOME優先級高於環境變量中的設置。

 

 

4、將2個tomcat的conf/logging.properties中的控制台編碼從UTF-8改為GBK,喜歡看亂碼的可以不改。

 

5、tomcat依賴jdk(將jsp轉換為servelt要用到jdk),環境變量中需要設置JAVA_HOME,值是jdk主目錄的路徑。

 

6、分別雙擊startup.bat啟動2個tomcat,部署相同的項目,為了好觀察效果,在tomcat1的項目的index.jsp的<body>中寫tomcat1,另一個寫tomcat2,瀏覽器中輸入地址測試下項目是否都部署成功了。

 

 


 

 

Nginx

1、下載Nginx的windows版,解壓

 

 

 

2、修改conf/nginx.conf

 

 服務器列表中我給每個服務器(tomcat)加了權重,使用加權輪詢,這樣才方便看到效果。

默認是輪詢(不設置權重、或者權重都為1),將服務器列表排成一圈,根據服務器列表配置的前后順序:

  nginx:tomcat1,你閑着不?

  tomcat1:我閑着

  nginx:那你處理下請求

 

  nginx:tomcat1,你閑着不?

  tomcat1:我正在處理請求

  nginx:tomcat2,你閑着不?

  tomcat2:我閑着

  nginx:那你來處理請求

 

部署的項目小、處理速度快,又是本地機上,請求、響應時間只有幾毫秒、十幾毫秒,tomcat1基本都是閑着的,如果使用輪詢,看到的一直都是tomcat1。

分配不同的權重才看得到tomcat2。如果你部署一個很大的項目,或者單身多年點一次刷新只需幾毫秒,也可以看到tomcat2。

 

 

 

3、雙擊啟動nginx.exe,驗證nginx是否啟動成功的2種方式:

  • 任務管理器看一下有沒有nginx的2個進程
  • 瀏覽器地址欄輸入127.0.0.1,看一下有沒有nginx的首頁或者tomcat的首頁。如果沒啟動tomcat,看到的是nginx的首頁;如果啟動了tomcat,會將請求轉發給tomcat,看到的是tomcat的首頁

如果nginx啟動失敗,一般是端口被占用了,nginx默認使用80端口,殺掉占用端口的進程,或者在conf/nginx.conf中修改端口號,如果修改了端口號,地址欄中要寫上端口號。

 

 

 

4、比方tomcat1的項目地址是 http://127.0.0.1:8080/test/ ,tomcat2的項目地址是 http://127.0.0.1:8081/test/

在地址欄輸入127.0.0.1:80/test  即訪問部署的項目,這個127.0.0.1:80是nginx的ip、端口。

端口號默認就是80,如果nginx使用80端口,地址欄可以不寫端口號,如果不是80端口,必須寫上端口號。





 

 

多個tomcat啟動|關閉的3種方式:

1、雙擊.bat

 

2、命令行,切換到單個tomcat所在目錄,startup、shutdown,cd來cd去很麻煩

 

3、將tomcat1的2個.bat分別重命名為startup1.bat、shutdown1.bat,tomcat2的分別重命名為startup2.bat、shutdown2.bat。

Path環境變量中添加tomcat1、tomcat2的bin目錄。

命令行下startup1即運行startup.bat、啟動tomcat1,shutdown1即運行shutdown1.bat、停止tomcat1,tomcat2也是同樣的道理。命令行傳入的是.bat的文件名。

 

 


 

 

nginx啟動|關閉的2種方式

1、雙擊nginx.exe啟動,任務管理器結束nginx的2個進程即關閉,修改nginx的配置需先結束2個進程、再雙擊nginx.exe啟動。

 

2、命令行cd到nginx的主目錄,

  • start nginx   啟動nginx
  • nginx  -s  reload   重新加載配置。修改nginx的配置后無需重啟nginx,執行此命令即生效。
  • nginx -s  stop  快速停止nginx。這個是強制停止nginx,可能導致一些問題。
  • nginx -s  quit  完整有序地停止nginx。

其實都是調用nginx.exe,傳遞的參數不同罷了。

 

把nginx的主目錄添加到Path環境變量中,不用cd到nginx主目錄就可操作?

理論上是這樣,但實操時基本都是毛病,不是啟動失敗(命令無效),就是停止的時候報錯:不能創建xx日志文件、不能找到xx日志文件.......

cd到nginx的主目錄進行操作,就不會出現這樣的問題。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM