正向代理:在瀏覽器中配置代理服務(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
nginx1./nginx
nginx1./nginx -s stop
nginx1./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)文章!






