前言
介紹:
? Nginx是一款輕量級(jí)的Web服務(wù)器反向代理服務(wù)器,特點(diǎn)是占有內(nèi)存少,并發(fā)能力強(qiáng),事實(shí)上nginx的并發(fā)能力在同類型的網(wǎng)頁服務(wù)器中表現(xiàn)較好,中國大陸使用nginx網(wǎng)站用戶有:百度、京東、新浪、網(wǎng)易、騰訊、淘寶等。
Nginx作為web服務(wù)器:
? Nginx.可以作為靜態(tài)頁面的web服務(wù)器,同時(shí)還支持CGI協(xié)議的動(dòng)態(tài)語言,比如perl、php等。但是不支持
java.。Java程序只能通過與tomcat配合完成。Nginx專為性能優(yōu)化而開發(fā),性能是其最重要的考量,實(shí)現(xiàn)上非常注重效率,能經(jīng)受高負(fù)載的考驗(yàn),有報(bào)告表明能支持高達(dá)50, 000個(gè)并發(fā)連接數(shù)。
注意!Nginx不支持java!Java程序只能通過與tomcat配合完成
關(guān)于Nginx的相關(guān)概念:
正向代理:
在介紹反向代理之前,先介紹一下正向代理:
就是說:如果我們進(jìn)行訪問谷歌沒法訪問,我們可以配置代理服務(wù)器,進(jìn)行訪問谷歌。

反向代理:
就是說:服務(wù)器本身不進(jìn)行暴露,而是設(shè)置了一個(gè)反向代理的服務(wù)器,當(dāng)客戶端訪問服務(wù)器時(shí),反向代理服務(wù)器再進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)到tomcat服務(wù)器上!

說說正向代理和反向代理的區(qū)別:
正向代理隱藏真實(shí)客戶端,反向代理隱藏真實(shí)服務(wù)端!
詳細(xì)解答:https://www.zhihu.com/question/24723688/answer/128105528
負(fù)載均衡:
將原先請(qǐng)求集中到單個(gè)服務(wù)器上的情況改為將請(qǐng)求分發(fā)到多個(gè)服務(wù)器上,將負(fù)載分發(fā)到不同的服務(wù)器,也就是我們所說的負(fù)載均衡。

動(dòng)靜分離:
為了加快網(wǎng)站的解析速度,可以把動(dòng)態(tài)頁面和靜態(tài)頁面由不同的服務(wù)器來解析,加快解析速度。降低原來單個(gè)服務(wù)器的壓力。

安裝
1、在Nginx官網(wǎng)http://nginx.org/en/download.html中下載linux對(duì)應(yīng)的版本。
2、安裝幾個(gè)環(huán)境
- 安裝pcre
wget https://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz
下載后會(huì)出現(xiàn)在/root下,把該壓縮包移動(dòng)到/usr/src/目錄下,并使用以下命令進(jìn)行解壓:
tar -xvf pcre-8.37.tar.gz
#解壓后,進(jìn)入該解壓目錄
[root@iZ2zeeqh1fctjw2bhzgjnaZ src]# cd pcre-8.37
#進(jìn)行一個(gè)檢查環(huán)境的操作,注意這一步,會(huì)有些環(huán)境沒有安裝,按網(wǎng)上提示安裝gcc等等
#嘗試這個(gè)安裝yum install -y gcc gcc-c++
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# ./configure
#只有上一步環(huán)境檢查都通過了,這一步才可以執(zhí)行,否則就會(huì)報(bào)錯(cuò)!
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# make && make install
#安裝好pcre后,用以下命令查看當(dāng)前版本
[root@iZ2zeeqh1fctjw2bhzgjnaZ pcre-8.37]# pcre-config --version
8.37
- 安裝其他的依賴
yum -y install make zlib zlib-devel gcC-C++ libtool openssl openssl-devel
- 安裝Nginx
#(1)把nginx安裝文件放到linux系統(tǒng)中,
#(2)解壓壓縮文件。
tar -xvf nginx-1.12.2.tar.gz
#(3)進(jìn)入解壓之后目錄,執(zhí)行./configure
./configure
#(4)使用make && make installs
安裝成功之后,會(huì)在/usr/local目錄下看見Nginx文件夾

#完成安裝之后,我們啟動(dòng)nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# pwd
/usr/local/nginx/sbin#在這個(gè)目錄下
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
root 26166 1 0 23:32 ? 00:00:00 nginx: master process ./nginx
nobody 26167 26166 0 23:32 ? 00:00:00 nginx: worker process
root 26177 15953 0 23:32 pts/0 00:00:00 grep --color=auto nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# pwd
/usr/local/nginx/conf
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# ls
fastcgi.conf koi-utf nginx.conf uwsgi_params
fastcgi.conf.default koi-win nginx.conf.default uwsgi_params.default
fastcgi_params mime.types scgi_params win-utf
fastcgi_params.default mime.types.default scgi_params.default
[root@iZ2zeeqh1fctjw2bhzgjnaZ conf]# vim nginx.conf
#在這個(gè)配置文件中,可以看到端口為80

注意:我們需要把阿里云的安全組打開80端口號(hào)后,才可以訪問!

常用的命令
#使用Nginx必須先要進(jìn)入/usr/local/nginx/sbin下:
#查看nginx版本號(hào)
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -v
nginx version: nginx/1.12.2
#啟動(dòng)nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx
#停止nginx
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
#先查看當(dāng)前運(yùn)行的nginx
root 26166 1 0 23:32 ? 00:00:00 nginx: master process ./nginx
nobody 26167 26166 0 23:32 ? 00:00:00 nginx: worker process
root 26458 15953 0 23:45 pts/0 00:00:00 grep --color=auto nginx
#進(jìn)行關(guān)閉
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -s stop
#關(guān)閉后再次查看
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ps -ef | grep nginx
root 26463 15953 0 23:45 pts/0 00:00:00 grep --color=auto nginx
#重加載,如果更改了配置文件,不需要重啟服務(wù)器
[root@iZ2zeeqh1fctjw2bhzgjnaZ sbin]# ./nginx -s reload
Nginx配置文件
位置

配置文件組成
第一部分 全局塊

介紹:從配置文件到event塊,主要會(huì)配置一些影響nginx服務(wù)器整體運(yùn)行的配置命令。
比如worker_processes 1,值越大,可以支持的并發(fā)數(shù)量就越高
第二部分 events塊
介紹:events塊涉及Nginx服務(wù)器與用戶的網(wǎng)絡(luò)連接。
比如:work_connections 1024;支持最大的連接數(shù)。
第三部分http塊
這算是!Nginx服務(wù)器配置中最頻繁的部分, 代理、緩存和日志定義等絕大多數(shù)功能和第三方模塊的配置都在這里。
需要注意的是: http塊也可以包括http全局塊、server 塊。
Nginx實(shí)例:反向代理測(cè)試1
1、環(huán)境配置:首先在服務(wù)器上安裝tomcat和Nginx,并且開放端口號(hào)
2、訪問的過程分析

3、具體配置
在本機(jī)中找到如下的文件夾:

在最后一行添加如下的數(shù)據(jù),相當(dāng)于訪問szw.com重定向到服務(wù)器的ip地址。

在nginx.conf中進(jìn)行配置:

注意:這里測(cè)試并沒有成功...
Nginx實(shí)例:反向代理測(cè)試2
題目:當(dāng)網(wǎng)址最后包含edu,跳轉(zhuǎn)到8080端口的tomcat下,如果包含vod,跳轉(zhuǎn)到8081下。

還是找到配置文件,重新寫一個(gè)server,進(jìn)行配置,~,是正則表達(dá)式。注意,不論是本機(jī)還是服務(wù)器都需要開放端口號(hào)!
負(fù)載均衡
動(dòng)靜分離

動(dòng)靜分離介紹
Nginx動(dòng)靜分離簡(jiǎn)單來說就是把動(dòng)態(tài)跟靜態(tài)請(qǐng)求分開,不能理解成只是單純的把動(dòng)態(tài)頁面和
靜態(tài)頁面物理分離。嚴(yán)格意義上說應(yīng)該是動(dòng)態(tài)請(qǐng)求跟靜態(tài)請(qǐng)求分開,可以理解成使用Nginx
處理靜態(tài)頁面,Tomcat 處理動(dòng)態(tài)頁面。動(dòng)靜分離從目前實(shí)現(xiàn)角度來講大致分為兩種,。
-種是純粹把靜態(tài)文件獨(dú)立成單獨(dú)的域名,放在獨(dú)立的服務(wù)器上,也是目前主流推崇的方案;.
另外一種方法就是動(dòng)態(tài)跟靜態(tài)文件混合在一起發(fā)布,通過nginx 來分開。。
這種做法的意義?
提高訪問的效率,動(dòng)態(tài)就訪問tomcat,靜態(tài)就專門訪問靜態(tài)資源。
特點(diǎn)
通過location指定不同的后綴名實(shí)現(xiàn)不同的請(qǐng)求轉(zhuǎn)發(fā)。通過expires 參數(shù)設(shè)置,可以使用瀏覽器緩存過期時(shí)間,減少與服務(wù)器之前的請(qǐng)求和流量。具體Expires定義:是給一個(gè)資源設(shè)定一個(gè)過期時(shí)間,也就是說無需去服務(wù)端驗(yàn)證,直接通過瀏覽器自身確認(rèn)是否過期即可,所以不會(huì)產(chǎn)生額外的流量。此種方法非常適合不經(jīng)常變動(dòng)的資源。( 如果經(jīng)常更新的文件,不建議使用Expires 來緩存),我這里設(shè)置3d,表示在這3天之內(nèi)訪問這個(gè)URL,發(fā)送一個(gè)請(qǐng)求,比對(duì)服務(wù)器該文件最后更新時(shí)間沒有變化,則不會(huì)從服務(wù)器抓取,返回狀態(tài)碼304,如果有修改,則直接從服務(wù)器重新下載,返回狀態(tài)碼200。
實(shí)現(xiàn)
在linux服務(wù)器中準(zhǔn)備靜態(tài)資源,注意:不用放在tomcat下。

具體操作
暫時(shí)保存~~~在測(cè)試nginx的時(shí)候,配置文件一直報(bào)錯(cuò)...