Nginx是什么!?
Nginx是一款web反向代理服務器軟件
他的特點是: 輕量級! 高性能! 可以瞬間重啟!
Nginx能干什么!?
1.0 Nginx可以反向代理 靜態資源 作為靜態資源服務器
2.0 Nginx可以反向代理 不同的訪問路徑,讓這些訪問路徑對外 提供統一規范的 入口 (這種形式也可以用來結果瀏覽器跨域問題)
3.0 Nginx可以反向代理 tomcat服務器集群,並且在代理tomcat們的時候對他們進行 服務端負載均衡
4.0 Nginx加載插件后 可以代理Lua腳本,當接收某個url請求時可以執行Lua腳本
Nginx怎么操作!?
首先看一下 Nginx 安裝 好后的 目錄結構
這個是Windows版的 目錄結構如下 這個是Linux版的 目錄結構如下
以下講解是基於Linux版的
在sbin目錄內 可以 操作 Nginx 啟動 停止 重啟
啟動
./nginx
停止
./nginx -s stop
重啟
./nginx -s reload
查看服務狀態
ps -ef | grep nginx
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1.0 利用Nginx 發布靜態資源
I
將靜態資源 安放在 Linux中的某個目錄下, 比如說 我把我要發布的靜態資源 放在 這個 /root/ng4do 目錄下,
可以讓認為 ng4do 是一個web項目
這里的重點是 這個項目是 ng4do 相對於這個項目來說!!!! 注意是相對於這個項目來說 項目的根目錄是 /root/ng4do
II
修改 Nginx 的 配置文件 在nginx 安裝目錄下 conf 目錄內
找到nginx.conf 配置文件
nginx.conf.default 是對nginx.conf文件的備份,就是怕你 經常改動 nginx.conf 文件后 不知道了 nginx.conf 原本最初的 樣子
vi nginx.conf 修改這個配置文件
找到 server{
listen 80;
.......
}
這里
此圖是尚未做修改的 狀態
在server {里面 替換 為如下內容}
location / {
root /root/ng4do; #左邊的 root 代表 聲明 此處是根目錄 右邊 /root/ng4do 是項目的根目錄
index /root/ng4do/day01.html; #左邊聲明 默認頁是這個頁面
}
修改后是這個樣子
vi編輯文件是Linux基本操作,編輯Linux文件的基本操作,在此不做贅述;
還有一個主意配置文件要改的地方是 第一行 user root;
不然訪問報403 說沒有權限訪問
配置文件改好后,
重啟Nginx即可
我靜態資源的目錄結構是這樣
url 訪問 這個地址就可以訪問到靜態資源
http://58.87.122.88/day01/day01.html
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
1.5 利用Nginx 發布 多個 靜態資源 (多個靜態資源 使用不同的端口號)
前言 : 在上文中,已經發布了一個 靜態資源 端口號 是80 資源內容放在 /root/ng4do 目錄下
現在我們 發布第二個 資源 端口號是81
I
先把靜態資源放置在 某個目錄下,本文中是 放在/root/ng4dy 目錄下
II
更改nginx.conf配置文件
新增一個
server{
listen 81;
.......
}
配置文件改好后是這個樣子的
III
重啟Nginx 服務器
如此完成
我們試着訪問一下 http://58.87.122.88:81/day06/day06.html 這個81端口的 靜態資源也發布好了
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2.0 提供統一的 端口, 在這個端口上可以接受 不同的rul請求,
根據 不同 的url 路徑 路由到 與之對應的 資源上
I
在上文基礎上,我們已經發布了 兩個 靜態資源 端口號 分別是80 與 81
更改nginx.conf配置文件
增加如下內容
server {
listen 88; #對外提供一個端口88的 服務
server_name daili; #取名 代理
location / {
if ($uri = /do) { rewrite /do http://$host:80/day01/day01.html; } #如果訪問的url是 http://58.87.122.88:88/do 則路由到 80 端口 那個靜態資源上
if ($uri = /dy) { rewrite /dy http://$host:81/day04/day04.html; } #如果訪問的url是 http://58.87.122.88:88/dy 則路由到 81 端口 那個靜態資源上
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
更改號的配置文件是這個樣子
2.5 Nginx路由tomcat動態資源一樣可以
在我的服務器里同時還在跑一個tomcat服務器,這個對外提供的訪問端口是 http://58.87.122.88:6868/
我把它們給定一個同一的入口,改配置文件如下
我訪問這個 http://58.87.122.88:88/tomcat 就可以路由到我的tomcat服務器 上去
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3.0 Nginx 對tomcat集群 提供負載均衡
請移步>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
4.0 Nginx 代理Lua腳本 執行功能
請移步>>>>>