正向代理:在瀏覽器中配置代理服務(wù)器,通過代理服務(wù)器進行互聯(lián)網(wǎng)訪問。 反向代理:將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標服務(wù)器獲取數(shù)據(jù)后,再返回給客戶端,此時反向代理服務(wù)器和目標服務(wù)器對外就是一個服務(wù)器,暴漏的是代理服務(wù)器地址。 如果請求數(shù)過大,單個服務(wù)器解決不了,我們增加服務(wù)器的數(shù)量,然后將請求分發(fā)到各個服務(wù)器上,將原先請求集中到單個服務(wù)器的情況改為請求分發(fā)到多個服務(wù)器上,就是負載均衡。 為了加快服務(wù)器的解析速度,可以把動態(tài)頁面和靜態(tài)頁面交給不同的服務(wù)器來解析,加快解析速度,降低原來單個服務(wù)器的壓力。 使用命令下載 登錄后復(fù)制 解壓壓縮文件 登錄后復(fù)制 進入解壓后的名錄,執(zhí)行以下命令 登錄后復(fù)制 使用以下命令進行編譯安裝 登錄后復(fù)制 查看安裝的 登錄后復(fù)制 登錄后復(fù)制 將壓縮包拖到服務(wù)器上; 使用命令 使用命令 使用命令 安裝成功后,在 在 登錄后復(fù)制登錄后復(fù)制 然后瀏覽器訪問服務(wù)器ip,
使用這些命令時需要進入 查看 登錄后復(fù)制 啟動 登錄后復(fù)制登錄后復(fù)制 關(guān)閉 登錄后復(fù)制 重新加載 登錄后復(fù)制 登錄后復(fù)制 1.全局塊 從配置文件開始到 登錄后復(fù)制 這個代表 2.events塊 登錄后復(fù)制 這個代表 3.http全局塊
本地瀏覽器訪問 由于我們的 登錄后復(fù)制 前面的ip是服務(wù)器的ip地址,后面的域名是我隨便起的用于綁定這個ip的一個域名。配置好之后,我們使用域名訪問一下tomcat,如果能請求到
登錄后復(fù)制 我們將以上默認的配置文件做個修改: 登錄后復(fù)制 以上這段配置的意思就是請求是 現(xiàn)在瀏覽器訪問www.javatrip.com,發(fā)現(xiàn)直接轉(zhuǎn)發(fā)到了 我們再解壓一個 將請求 登錄后復(fù)制 然后試試效果,分別訪問www.javatrip.com:7001/dev/a.html和www.javatrip.com:7001/prod/a.html,效果如下:
其中,配置轉(zhuǎn)發(fā)的時候用到了~,其含義內(nèi)容如下: = 嚴格匹配。如果這個查詢匹配,那么將停止搜索并立即處理此請求。 ~ 為區(qū)分大小寫匹配(可用正則表達式) !~為區(qū)分大小寫不匹配 ~* 為不區(qū)分大小寫匹配(可用正則表達式) !~*為不區(qū)分大小寫不匹配 ^~ 如果把這個前綴用于一個常規(guī)字符串,那么告訴 負載均衡(Load Balance),意思是將負載(工作任務(wù),訪問請求)進行平衡、分攤到多個操作單元(服務(wù)器,組件)上進行執(zhí)行。是解決高性能,單點故障(高可用),擴展性(水平伸縮)的終極解決方案。 現(xiàn)在我們想實現(xiàn)的效果是通過訪問www.javatrip.com:7001/prod/a.html,將請求分別分發(fā)到兩個tomcat上面去,首先我們在 首先,在 登錄后復(fù)制登錄后復(fù)制 其次,在 登錄后復(fù)制 訪問地址:www.javatrip.com:7001/prod/a.html,多刷新幾次。發(fā)現(xiàn)有的請求到
輪詢(默認):每個請求按時間順序逐一分配到不同的服務(wù)器,如果服務(wù)器down了,會自動剔除。 登錄后復(fù)制登錄后復(fù)制 weight(權(quán)重):默認為1,權(quán)重越高,分配的請求越多。 登錄后復(fù)制 ip hash:每個請求按訪問ip的hash結(jié)果分配,這樣每個訪客固定訪問一個后臺服務(wù)器,可以解決 登錄后復(fù)制 fair(第三方):按后端響應(yīng)時間進行分配,響應(yīng)時間越短分配的請求越多。 登錄后復(fù)制 由于動靜分離在實際開發(fā)中也不常用,就不再寫了。本篇文章做為一個nginx入門,到這里就基本完結(jié)了。最后留給大家一個問題思考一下:如何保證nginx的高可用?一 Nginx簡介
1.1 什么是Nginx
Nginx
是一個高性能的http
和反向代理服務(wù)器,其特點是占用內(nèi)存小,并發(fā)能力強。Nginx
專為性能優(yōu)化而開發(fā),性能是其最重要的考量,能經(jīng)受高負載的考驗,有報告表明能支持高達50000個并發(fā)連接數(shù)。1.2 反向代理
1.3 負載均衡
1.4 動靜分離
二 Nginx的安裝
Nginx
需要幾個依賴包,分別是pcre
,openssl
,zlib
,在安裝nginx
之前需要先安裝這幾個依賴。2.1 安裝pcre依賴
pcre
壓縮包1wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
1tar -xvf pcre-8.37.tar.gz
1./configure
1make && make install
pcre
版本號1pcre-config --version
2.2 安裝openssl,zlib等依賴
1yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
2.3 安裝nginx
nginx
官網(wǎng)下載nginx
,官網(wǎng)地址:https://nginx.org/download/;tar -xvf nginx-1.12.2.tar.gz
解壓壓縮包;./configure
檢查;make && make isntall
編譯安裝;usr
會多出來一個文件夾,local/nginx
,在nginx
的sbin
文件夾下有啟動腳本。2.4 啟動nginx
/usr/local/nginx/sbin
文件夾下,使用以下命令啟動1./nginx
nginx
默認端口是80,出現(xiàn)以下頁面則證明nginx
安裝成功;2.5 Nginx常用的命令
/usr/local/nginx/sbin
文件夾
nginx
的版本號1./nginx -v
nginx
1./nginx
nginx
1./nginx -s stop
nginx
1./nginx -s reload
2.6 Nginx的配置文件
nginx
的配置文件在/usr/local/nginx/conf
中的nginx.conf
。我們將nginx.conf
中注釋的內(nèi)容刪除一下。 1#user nobody;
2worker_processes 1;
3
4#pid logs/nginx.pid;
5
6events {
7 worker_connections 1024;
8}
9
10http {
11 include mime.types;
12 default_type application/octet-stream;
13
14 sendfile on;
15 #tcp_nopush on;
16
17 #keepalive_timeout 0;
18 keepalive_timeout 65;
19
20 #gzip on;
21
22 server {
23 listen 80;
24 server_name localhost;
25
26 location / {
27 root html;
28 index index.html index.htm;
29 }
30 }
31}
nginx
的配置文件包含三部門。events
塊之間的內(nèi)容,主要會設(shè)置一些nginx
服務(wù)器整體運行的配置指令。1worker_processes 1;
nginx
處理并發(fā)的關(guān)鍵配置,值越大,處理并發(fā)能力越強。但是會受到硬件、軟件等約束。events
塊涉及的指令主要影響nginx
服務(wù)器與用戶網(wǎng)絡(luò)的連接。1worker_connections 1024;
nginx
支持的最大連接數(shù)。nginx
服務(wù)器配置最頻繁的部分。http
全局塊包含http塊
和server塊
。三 Nginx配置反向代理
3.1 ngix代理流程
nginx
服務(wù)器,nginx
服務(wù)器反向代理tomcat
服務(wù)器,當我們請求nginx
的時候直接訪問到tomcat
。tomcat
的安裝這里就不在講了,我將tomcat
和nginx
安裝在了同一臺服務(wù)器上。3.2 配置ip和域名的綁定關(guān)系
nginx
沒有域名,為了演示,因此我們在本地host
文件中配置nginx
服務(wù)器ip和域名進行綁定。這個host
文件的具體位置在C:\Windows\System32\drivers\etc
。在host文件中增加一句配置:147.104.xxx.xxx www.javatrip.com
tomcat
默認頁面,則配置成功。3.3 在nginx配置請求轉(zhuǎn)發(fā)
1 server {
2 listen 80;
3 server_name localhost;
4
5 location / {
6 root html;
7 index index.html index.htm;
8 }
9 }
1server {
2 listen 80;
3 server_name 47.104.xxx.xxx;
4
5 location / {
6 root html;
7 proxy_pass http://127.0.0.1:8080;
8 index index.html index.htm;
9 }
10}
47.104.xxx.xxx:80
,都會轉(zhuǎn)發(fā)至47.104.xxx.xxx:8080
。tomcat
上了,這樣簡單的反向代理就完成了。3.4 根據(jù)請求后綴分發(fā)
tomcat
,端口號設(shè)置為8081,分別在兩個tomcat
下webapps
目錄下面新建dev
和prod
目錄,然后在該目錄下寫一個文件。www.javatrip.com:7001/dev
轉(zhuǎn)發(fā)到tomcat8080
,將請求www.javatrip.com:7001/prod
轉(zhuǎn)發(fā)到tomcat8081
。現(xiàn)在我們的nginx
監(jiān)聽的端口號是7001。打開nginx
的配置文件,新建一個server
如下: 1server {
2 listen 7001;
3 server_name 47.104.xxx.xxx;
4
5 location ~ /dev/ {
6 proxy_pass http://127.0.0.1:8080;
7 }
8
9 location ~ /prod/ {
10 proxy_pass http://127.0.0.1:8081;
11 }
12}
nginx
如果路徑匹配那么不測試正則表達式。四 Nginx配置負載均衡
4.1 什么是負載均衡
tomcat8080
上新建一個prod
的文件夾,里面放一個a.html
的文件。這樣tomcat8081
和tomcat8080
兩個上就都有了一個prod
的文件加且里面有一個a.html
的文件。4.2 配置nginx.conf
http塊
中配置兩個tomcat
的服務(wù)列表1upstream myserver{
2 server 127.0.0.1:8080;
3 server 127.0.0.1:8081;
4}
server塊
中配置規(guī)則: 1server {
2 listen 80;
3 server_name 47.104.xxx.xxx;
4
5 location / {
6 root html;
7 proxy_pass http://myserver;
8 index index.html index.htm;
9 }
10}
4.3 測試效果
tomcat8080
上,有的請求到tomcat8081
上。4.4 nginx支持的幾種負載策略
1upstream myserver{
2 server 127.0.0.1:8080;
3 server 127.0.0.1:8081;
4}
1upstream myserver{
2 server 127.0.0.1:8080 weight=1;
3 server 127.0.0.1:8081 weight=2;
4}
session
的問題。1upstream myserver{
2 ip_hash;
3 server 127.0.0.1:8080;
4 server 127.0.0.1:8081;
5}
1upstream myserver{
2 server 127.0.0.1:8080;
3 server 127.0.0.1:8081;
4 fair;
5}
以上就是Nginx超簡單教程,入門看這篇就夠了的詳細內(nèi)容,更多請關(guān)注www.92cms.cn其它相關(guān)文章!