1、爲何要用nginx?它和tomcat的區別又是什麼?javascript
1. 從應用方面
tomcat通常是作動態解析纔會用獲得,支持jsp的解析,須要配置JDK支持;nginx,則通常是作靜態,自己不具有動態解析功能,須要配置其餘插件或經過其餘軟件協同才具有動態功能,好比php,tomcat,或者proxypass到win2008的iis服務器作ASP的動態連接等,但nginx在靜態上的功能很是強大,
也可作訪問控制,並且能夠作成各類協議負載服務器,包括流媒體的也能夠作,具體能夠去官方網站閱讀文檔;
2. 在性能方面
若是再不作系統調優的狀況下,tomcat通常支持併發並不高100個差很少了;而nginx在靜態方面支持併發輕鬆達幾萬。
簡單的總結一下,就是二者應用領域不同,tomcat是作java等語言的動態解析,而nginx則是一款功能強大的負載軟件,配合各類插件能夠實現各類功能。php
2、Nginx工做原理css
Nginx是一款開源代碼的高性能HTTP服務器和反向代理服務器,同時支持IMAP/POP3/SMTP代理服務。Nginx由內核和模塊組成,完成工做是經過查找配置文件將客戶端請求映射到一個location block(location是用於URL匹配的命令),location配置的命令會啓動不一樣模塊完成工做。html
Nginx模塊分爲核心模塊,基礎模塊和第三方模塊。前端
核心模塊:HTTP模塊、EVENT模塊(事件)、MAIL模塊。java
基礎模塊:HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊、HTTP Rewrite模塊。node
第三方模塊:HTTP Upstream Request Hash模塊、Notice模塊、HTTP Access Key模塊。nginx
3、CentOS7下安裝nginxc++
啓動
啓動代碼格式:nginx安裝目錄地址 -c nginx配置文件地址
例如:
[root@libingbin sbin]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confweb
啓動操做
/usr/nginx/sbin/nginx (/usr/nginx/sbin/nginx -t 查看配置信息是否正確)
中止操做
中止操做是經過向nginx進程發送信號(信號是Linux所使用的進程間通訊的最古老的方式。它是在軟件層次上對中斷機制的一種模擬,是一種異步通訊的方式 。一個完整的信號週期包括三個部分,信號的產生,信號在進程中的註冊,信號在進程中的註銷,執行信號處理函數。)來進行的。
步驟1:
查詢nginx主進程號
ps -ef | grep nginx
在進程列表裏 面找master進程,它的編號就是主進程號了。
步驟2:發送信號
從容中止Nginx:
kill -QUIT 主進程號
快速中止Nginx:
kill -TERM 主進程號
強制中止Nginx(pkill做用:經過程序的名字,直接殺死全部進程;kill做用:根據進程號殺死進程;killall做用:經過程序的名字,直接殺死全部進程;xkill做用:殺死桌面圖形界面的程序):
pkill -9 nginx
另外,若在nginx.conf配置了pid文件存放路徑則該文件存放的就是Nginx主進程號,若是沒指定則放在nginx的logs目錄下。有了pid文 件,咱們就不用先查詢Nginx的主進程號,而直接向Nginx發送信號了,命令以下:
kill -信號類型 '/usr/nginx/logs/nginx.pid'
平滑重啓
若是更改了配置就要重啓Nginx,要先關閉Nginx再打開?不是的,能夠向Nginx 發送信號,平滑重啓。
平滑重啓命令:
kill -HUP 住進稱號或進程號文件路徑
或者使用
/usr/nginx/sbin/nginx -s reload
注意,修改了配置文件後最好先檢查一下修改過的配置文件是否正 確,以避免重啓後Nginx出現錯誤影響服務器穩定運行。判斷Nginx配置是否正確命令以下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
4、Nginx配置文件
配置文件主要由四部分組成:main(全區設置),server(主機配置),upstream(負載均衡服務器設置),和location(URL匹配特定位置設置)。
1)全局變量
2)事件配置
3)http參數
4)虛擬主機基本設置
5)Nignx狀態監控
6)反向代理
7)負載均衡
8)URL重寫
9)IP限制
10)Nginx相關命令
<!-- Start -->
獲知及時信息,請關注個人我的微信訂閱號:0與1的那點事
<!-- End -->