Nginx是一款輕量級的Web伺服器/反向代理伺服器及電子郵件代理伺服器
在本篇中我們會簡單介紹Nginx的特點,安裝,相關指令使用以及設定資訊和具體應用等
本篇內容屬於《瑞吉外賣》的知識科普部分,有興趣可以檢視一下《瑞吉外賣》的相關文章內容
我們先來對Nginx做一個的簡單的瞭解
Nginx是一款輕量級的Web伺服器/反向代理伺服器及電子郵件代理伺服器
本身具有佔用記憶體少,並行能力強等特點,其並行能力在同型別的網頁伺服器中表現較好,包括百度,京東等眾多伺服器都是採用Nginx
Nginx是由伊戈爾·賽索耶夫為俄羅斯存取量第二的Rambler.ru站點開發的,第一個公開版本0.1.0釋出於2004年10月4日。
下面附上官方:nginx news
我們的Nginx通常使用在Linux伺服器系統上,我們這裡使用虛擬機器器來進行操作:
# 我們首先來下載一些關於Nginx安裝的依賴包
yum -y install gcc pcre-devel zlib-devel openssl oepnssl-devel
# 我們藉助wget網上下載外掛來實現
yum install wget
# 我們使用wget下載安裝包
wget https://nginx.org/download/nginx-1.16.1.tar.gz
# 解壓安裝包在當前資料夾root
tar -zxvf nginx-1.16.1.tar.gz
# 跳轉頁面
cd nginx-1.16.1
# 建立資料夾
mkdir /usr/local/nginx
# 安裝
./configure --prefix=/usr/local/nginx
# 安裝
make && make install
至此我們的Nginx安裝完成
在安裝完Nginx後,我們可以到相應檔案下檢視,可以看到主要分為四個檔案包:
其中我們主要使用的兩個檔案是:
這裡我們介紹一個Linux外掛,可以詳細檢視該目錄下所有的檔案內容:
# Tree外掛(需要先下載yum install tree)
tree
我們可以看到其檔案邏輯結構:
下面我們將著重介紹幾個Nginx常用命令
首先我們需要來到sbin目錄下:
# 跳轉頁面
cd /usr/local/nignx/sbin
我們使用檢視命令:
# 檢視版本號
./nginx -v
首先我們需要來到sbin目錄下:
# 跳轉頁面
cd /usr/local/nignx/sbin
我們使用檢查命令:
# 檢查版本以及設定資訊
./nginx -t
首先我們需要來到sbin目錄下:
# 跳轉頁面
cd /usr/local/nignx/sbin
我們使用相關命令:
# 啟動命令
./nginx
# 停止命令
./nginx -s stop
# 重啟命令
./nginx -s reload
# 檢視nginx程序
ps -ef|grep nginx
下面我們來簡單介紹一下組態檔
我們通常將其組態檔分為三部分:
其中http塊還分為兩部分:
其中server還分為兩部分:
我們需要注意的是:
我們可以到具體組態檔中去檢視相關設定:
# 檢視組態檔
vim /usr/local/nignx/conf/nignx.conf
# 以下為組態檔內容(已將#註釋部分刪除)
# 第一部分是全域性塊
worker_processes 1; # 這裡表示可以同時有多少個程序
# 第二部分是events塊
events {
worker_connections 1024; # 單個工作程序可以允許同時建立外部連線的數量,數位越大,能同時處理的連線越多
}
# 第三部分是http塊,裡面包含了代理,快取,紀錄檔記錄,虛擬主機設定等相關資訊,我們後續會詳細介紹
http {
# 3.1 http全域性塊
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 3.2 Server塊
server {
# 3.2.1 Server全域性塊
listen 80;
server_name localhost;
# 3.2.2 location塊
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
Nginx具有三方面應用,下面我們將一一講解
Nginx可以作為靜態web伺服器來部署靜態資源。
靜態資源指在伺服器端真實存在並且能夠直接展示的一些檔案,比如常見的htm頁面、Css檔案、 js檔案、 圖片、視訊等資源。
我們可以直接將靜態資源放置在Nginx的html資料夾下即可完成部署,同時Nginx處理靜態資源的能力甚至相比於Tomcat來說更加高效
那麼Nginx為什麼能夠自動設定靜態資源呢?
# 主要依賴於我們的conf組態檔中的http塊中的Server塊
# Server塊
server {
# 3.2.1 Server全域性塊
listen 80; # 表示監聽埠(即我們存取網頁的埠號,本機查詢為192.168.44.128:80)
server_name localhost; # 埠名稱(無所謂命名,一般是我們的域名)
# 3.2.2 location塊
location / {
root html; # 靜態資源來源(設定在html資料夾下,所以我們查詢靜態資源會在html資料夾下查詢)
index index.html index.htm; # 預設主頁,即存取192.168.44.128:80時出現的頁面
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
在接觸反向代理之前我們先來講解正向代理:
其正向代理的主要功能:
其正向代理的主要特點:
正向代理圖:
然後我們再來介紹反向代理:
其反向代理的主要功能:
其反向代理的主要特點:
反向代理圖:
最後我們簡單介紹一下如何設定反向代理:
# 我們同樣來修改組態檔
vim /usr/local/nignx/conf/nignx.conf
# 進入後設定server塊
# Server塊
server {
# 3.2.1 Server全域性塊
listen 82; # 表示監聽埠(即我們存取網頁的埠號,本機查詢為192.168.44.128:82)
server_name localhost; # 埠名稱(無所謂命名,一般是我們的域名)
# 3.2.2 location塊
location / {
proxy_pass http://192.168.44.129:8080; #我們將該請求轉移到http://192.168.44.129:8080指定服務中
}
}
我們首先來簡單介紹一下負載均衡:
我們來簡單解釋兩個概念:
負載均衡圖:
最後我們簡單介紹一下如何設定負載均衡:
# 我們同樣來修改組態檔
vim /usr/local/nignx/conf/nignx.conf
# 首先我們需要在http中設定應用叢集
http {
# 3.1 http全域性塊(設定應用叢集)
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream targetserver{ # upstream表示定義應用叢集,targetserver為名稱
server 192.168.44.129:8080; # server表示設定其轉發伺服器埠,192.168.44.129:8080為自己設定即可
server 192.168.44.129:8081; # server表示設定其轉發伺服器埠,192.168.44.129:8081為自己設定即可
}
# 3.2 Server塊
server {
# 3.2.1 Server全域性塊
listen 8080; # 我們存取時採用192.168.44.128
server_name localhost;
# 3.2.2 location塊
location / {
proxy_pass targetserver; #我們將該請求轉移到targetserver應用叢集中去
}
}
該篇內容到這裡就結束了,希望能為你帶來幫助~
該文章屬於學習內容,具體參考B站黑馬程式設計師的Java專案實戰《瑞吉外賣》
這裡附上視訊連結:專案優化Day2-08-Nginx課程內容介紹&概述_嗶哩嗶哩_bilibili