最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nginx七層及四層反向代理配置的全過(guò)程

 更新時(shí)間:2022年03月07日 09:11:41   作者:zhangxm_qz  
反向代理是以代理服務(wù)器來(lái)接受internet連接請(qǐng)求,然后再把請(qǐng)求轉(zhuǎn)發(fā)給另外的服務(wù)器,下面這篇文章主要給大家介紹了關(guān)于Nginx七層及四層反向代理配置的相關(guān)資料,需要的朋友可以參考下

本文旨在測(cè)試 nginx對(duì) http服務(wù) https 服務(wù) 的代理方式。

部署測(cè)試 http服務(wù)

準(zhǔn)備測(cè)試服務(wù)程序 gintest 并啟動(dòng)如下

[root@localhost ~]# sudo nohup ./gintest 9000 &
[1] 4229
[root@localhost ~]# nohup: 忽略輸入并把輸出追加到"nohup.out"

[root@localhost ~]# 
[root@localhost ~]# curl http:localhost:9000
curl: (6) Could not resolve host: http:localhost; 未知的錯(cuò)誤
[root@localhost ~]# curl http://localhost:9000
{"message":"測(cè)試程序,服務(wù)器ip:192.168.90.9,端口:9080"}[

nginx反向代理 http服務(wù)

安裝 nginx 并修改配置文件 ,對(duì) web服務(wù)進(jìn)行代理如下

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            proxy_pass http://192.168.90.9:9000;
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

啟動(dòng) nginx 并訪問(wèn),結(jié)果如下 代理成功

nginx 通過(guò) https反向代理 http服務(wù)

使用 https 服務(wù)需要安裝http_ssl_module 否則會(huì)報(bào)錯(cuò) 『ssl parameter requires ngx_http_ssl_module』

重新編譯安裝 nginx

nginx源碼根目錄執(zhí)行如下命令 ,重新編譯 ,輸出目錄保持不變

 ./configure   --with-http_stub_status_module --with-http_ssl_module
 
 make && make install 安裝 

成功后可以看到我們的 nginx 目錄下已經(jīng)安裝了新版本的 nginx

配置 nginx

提前準(zhǔn)備好一套證書(shū)和私鑰, tls.crt tls.key

nginx http 模塊配置中,增加如下配置

  server {
        listen       443 ssl;
        server_name  www.mytest.com;

        ssl_certificate      /root/tls.crt;
        ssl_certificate_key  /root/tls.key;
        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {
            proxy_pass http://192.168.90.9:9000;
            root   html;
            index  index.html index.htm;
        }
    }

重新加載 配置

[root@localhost conf]# ../sbin/nginx -s   reload

訪問(wèn)測(cè)試

通過(guò)https訪問(wèn)應(yīng)用成功,如下:

這種情況下需要將 應(yīng)用的證書(shū)配置到nginx,如果 nginx代理了很多應(yīng)用,每個(gè)應(yīng)用證書(shū)不同,那么需要配置很多證書(shū)。

nginx提供了 stream 模塊用于 tcp/udp 請(qǐng)求直接轉(zhuǎn)發(fā)后臺(tái)服務(wù)器處理,不用配置證書(shū)。如下

Nginx Stream模塊負(fù)載均衡測(cè)試

準(zhǔn)備測(cè)試用 https服務(wù)

準(zhǔn)備一個(gè) java https 服務(wù)

部署 tomcat及 web示例應(yīng)用

生成tomcat 證書(shū)

[root@mysql tomcat]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore /root/tomcat/certs/tomcat.keystore -validity 365
輸入密鑰庫(kù)口令:  
再次輸入新口令: 
您的名字與姓氏是什么?
  [Unknown]:  zhang
您的組織單位名稱是什么?
  [Unknown]:  pcitc
您的組織名稱是什么?
  [Unknown]:  ptitc
您所在的城市或區(qū)域名稱是什么?
  [Unknown]:  bj
您所在的省/市/自治區(qū)名稱是什么?
  [Unknown]:  bj
該單位的雙字母國(guó)家/地區(qū)代碼是什么?
  [Unknown]:  bj
CN=zhang, OU=pcitc, O=ptitc, L=bj, ST=bj, C=bj是否正確?
  [否]:  y

正在為以下對(duì)象生成 2,048 位RSA密鑰對(duì)和自簽名證書(shū) (SHA256withRSA) (有效期為 365 天):
         CN=zhang, OU=pcitc, O=ptitc, L=bj, ST=bj, C=bj
輸入 <tomcat> 的密鑰口令
        (如果和密鑰庫(kù)口令相同, 按回車):  
[正在存儲(chǔ)/root/tomcat/certs/tomcat.keystore]

Warning:
JKS 密鑰庫(kù)使用專用格式。建議使用 "keytool -importkeystore -srckeystore /root/tomcat/certs/tomcat.keystore -destkeystore /root/tomcat/certs/tomcat.keystore -deststoretype pkcs12" 遷移到行業(yè)標(biāo)準(zhǔn)格式 PKCS12。
[root@mysql tomcat]# ll certs
總用量 4
-rw-r--r-- 1 root root 2201 3月   3 00:14 tomcat.keystore

配置 tomcat SSL 連接

tomcat 配置文件 server.xml中增加如下內(nèi)容 :

https服務(wù)訪問(wèn)測(cè)試

通過(guò) https 訪問(wèn)web服務(wù)成功

https://192.168.90.20:8443/testWeb/index.jsp

nginx stream 安裝配置

nginx 安裝 stream 模塊

重新編譯安裝 nginx

./configure   --with-stream

make && make install 

配置 nginx stream

nginx.conf配置文件中增加 stream配置(和 http 模塊并列)

訪問(wèn)測(cè)試

通過(guò) nginx 443 端口可以在沒(méi)有配置證書(shū)的情況下可以通過(guò) https訪問(wèn)后臺(tái)的應(yīng)用。

負(fù)載均衡策略

該模塊支持的負(fù)載均衡策略如下:

Round Robin 輪詢– 默認(rèn)情況下,NGINX 使用 Round Robin 算法對(duì)流量進(jìn)行負(fù)載平衡,將其按順序定調(diào)用上游組中的服務(wù)器。因?yàn)槭悄J(rèn)方法,所以沒(méi)有 round?robin 指令 不配置即為 輪詢。

Least Connections 最少連接數(shù):( least_conn) - NGINX 選擇當(dāng)前活動(dòng)連接數(shù)較少的服務(wù)器。

Least Time ( least_time;僅適用于 NGINX Plus ) – 選擇具有最低平均延遲和最少活動(dòng)連接數(shù)的服務(wù)器。用于計(jì)算最低平均延遲的方法取決于 least_time 指令中包含以下哪些參數(shù):

connect – 連接上游服務(wù)器的時(shí)間

first_byte – 接收第一個(gè)數(shù)據(jù)字節(jié)的時(shí)間

last_byte – 從服務(wù)器接收完整響應(yīng)的時(shí)間

示例如下:

upstream stream_backend {
    least_time first_byte;
    server backend1.example.com:12345;
    server backend2.example.com:12345;
    server backend3.example.com:12346;
}

Hash ( hash) – NGINX 根據(jù)用戶定義的header選擇服務(wù)器,例如源 IP 地址 ( $remote_addr),如下:

upstream stream_backend {
    hash $remote_addr;
    server backend1.example.com:12345;
    server backend2.example.com:12345;
    server backend3.example.com:12346;
}

哈希負(fù)載平衡方法常用于保持會(huì)話。指定一個(gè) consistent 選項(xiàng) 可以使用 ketama 一致性hash算法:

hash $remote_addr consistent;

默認(rèn)采用輪詢算法

nginx stream 中upstream 配置兩個(gè)后臺(tái)服務(wù)器如下:

upstream testjava{
    server 192.168.90.20:8443;
    server 192.168.90.21:8443;
}
server {
    listen 443;
    proxy_connect_timeout 1s;
    proxy_timeout 3s;
    proxy_pass testjava;
}

進(jìn)行訪問(wèn)測(cè)試 兩個(gè)后臺(tái)服務(wù)器輪流被訪問(wèn)

一致性 hash 算法測(cè)試

nginx.conf stream 模塊 中配置如下

upstream testjava{
    hash $remote_addr consistent;
    server 192.168.90.20:8443;
    server 192.168.90.21:8443;
}

server {
    listen 443;
    proxy_connect_timeout 1s;
    proxy_timeout 3s;
    proxy_pass testjava;
}

多次訪問(wèn)都訪問(wèn)到同一個(gè)后臺(tái)服務(wù)器,證明會(huì)話保持成功

參考文檔:http://www.wjhsh.net/felixzh-p-8696552.html

附:負(fù)載均衡四層和七層的區(qū)別

1.區(qū)別:四層負(fù)載,說(shuō)的是基于IP+端口的負(fù)載均衡;七層負(fù)載,說(shuō)的是基于WEB請(qǐng)求,URL等應(yīng)用信息的負(fù)載均衡。同理,還有基于二層和三成的。二層的就是基于MAC地址,二層負(fù)載均衡會(huì)通過(guò)一個(gè)虛擬MAC地址接受請(qǐng)求,然后再分配到真實(shí)的MAC地址。三層負(fù)載就是通過(guò)一個(gè)虛擬IP地址,然后再分配到真實(shí)的IP。四層就是通過(guò)虛機(jī)的IP+端口接收請(qǐng)求,然后再分配到真實(shí)的服務(wù)器;七層就是通過(guò)虛機(jī)主機(jī)名或者URL接收請(qǐng)求,再根據(jù)一些規(guī)則分配到真實(shí)的服務(wù)器,常見(jiàn)的應(yīng)用是nginx。

2.所謂的負(fù)載均衡,就是根據(jù)請(qǐng)求的信息不同,來(lái)決定怎么樣轉(zhuǎn)發(fā)流量。四層負(fù)載均衡,就是根據(jù)請(qǐng)求的ip+端口,根據(jù)設(shè)定的規(guī)則,將請(qǐng)求轉(zhuǎn)發(fā)到后端對(duì)應(yīng)的IP+端口上。七層負(fù)載均衡,則是在四層基礎(chǔ)上,再去考慮應(yīng)用層的特征。比如說(shuō)一個(gè)WEB服務(wù)器的負(fù)載均衡,除了根據(jù)IP+80端口來(lái)判斷之外,還可以根據(jù)七層URL,瀏覽器類別,來(lái)決定如何去轉(zhuǎn)發(fā)流量。

3.四層交換機(jī)主要分析IP層和TCP/UDP層,實(shí)現(xiàn)四層流量負(fù)載,這種負(fù)載不關(guān)心七層的應(yīng)用協(xié)議。七層的交換機(jī)除了支持四層之外,還要分析應(yīng)用層,如HTTP協(xié)議、URL、cookie等信息。四層常見(jiàn)軟件是haproxy,LVS,七層常見(jiàn)軟件是nginx。

總結(jié)

到此這篇關(guān)于Nginx七層及四層反向代理配置的文章就介紹到這了,更多相關(guān)Nginx反向代理配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解Nginx反向代理WebSocket響應(yīng)403的解決辦法

    詳解Nginx反向代理WebSocket響應(yīng)403的解決辦法

    本篇文章主要介紹了詳解Nginx反向代理WebSocket響應(yīng)403的解決辦法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Linux Nginx下SSL證書(shū)安裝方法及WordPress CDN配置

    Linux Nginx下SSL證書(shū)安裝方法及WordPress CDN配置

    這篇文章主要介紹了Linux Nginx下SSL證書(shū)安裝方法及WordPress CDN配置,需要的朋友可以參考下
    2017-08-08
  • Nginx服務(wù)器下配置使用索引目錄的教程

    Nginx服務(wù)器下配置使用索引目錄的教程

    這篇文章主要介紹了Nginx服務(wù)器下配置使用索引目錄的教程,包括自帶的auto_index和使用fancy插件美化的用法,需要的朋友可以參考下
    2016-01-01
  • 在Ubuntu20.04上安裝Kubernetes集群

    在Ubuntu20.04上安裝Kubernetes集群

    容器化為開(kāi)發(fā)人員提供了很大的靈活性,最常用的容器化應(yīng)用程序之一是 Docker,在容器上部署服務(wù)的主要原因之一是它們靈活、輕量級(jí)并且在部署在數(shù)百臺(tái)機(jī)器上時(shí)易于擴(kuò)展,但是,誰(shuí)來(lái)管理所有這些容器?這就是 Kubernetes 發(fā)揮作用的地方
    2023-12-12
  • Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問(wèn)題的解決及分析

    Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問(wèn)題的解決及分析

    最近恰好又遇到這了個(gè)錯(cuò)誤,為了加深記憶,所以記錄下我遇到這個(gè)錯(cuò)誤的主要原因,下面這篇文章主要給大家介紹了關(guān)于Nginx報(bào)錯(cuò)104:Connection?reset?by?peer問(wèn)題的解決及分析的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • 如何讓Nginx快速支持TLS1.3協(xié)議詳解

    如何讓Nginx快速支持TLS1.3協(xié)議詳解

    這篇文章主要給大家介紹了如何讓Nginx快速支持TLS1.3協(xié)議的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • 服務(wù)器的負(fù)載均衡nginx+tomcat實(shí)現(xiàn)動(dòng)靜分離

    服務(wù)器的負(fù)載均衡nginx+tomcat實(shí)現(xiàn)動(dòng)靜分離

    這篇文章主要為大家介紹了服務(wù)器的負(fù)載均衡nginx+tomcat實(shí)現(xiàn)動(dòng)靜分離的案例實(shí)施步驟以及環(huán)境詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-03-03
  • Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)

    Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)

    我們?cè)谑褂玫臅r(shí)候會(huì)遇到很多的惡意IP攻擊,這個(gè)時(shí)候就要用到Nginx 禁止IP訪問(wèn)了,下面這篇文章主要給大家介紹了關(guān)于Nginx如何限制IP訪問(wèn)只允許特定域名訪問(wèn)的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • nginx rewrite 偽靜態(tài)配置參數(shù)詳細(xì)說(shuō)明

    nginx rewrite 偽靜態(tài)配置參數(shù)詳細(xì)說(shuō)明

    nginx rewrite 偽靜態(tài)配置參數(shù)和使用例子 附正則使用說(shuō)明
    2010-05-05
  • 詳解nginx 301跳轉(zhuǎn)到帶www域名方法

    詳解nginx 301跳轉(zhuǎn)到帶www域名方法

    這篇文章主要介紹了詳解nginx 301跳轉(zhuǎn)到帶www域名方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08

最新評(píng)論

汽车| 郸城县| 安陆市| 徐汇区| 琼结县| 舒城县| 深圳市| 小金县| 潞西市| 英德市| 巴塘县| 巴塘县| 杭锦后旗| 长岭县| 高台县| 綦江县| 北安市| 商水县| 石柱| 龙门县| 张家港市| 南皮县| 浦城县| 双鸭山市| 泾川县| 西昌市| 天柱县| 余江县| 定南县| 上高县| 西吉县| 永福县| 富宁县| 政和县| 云浮市| 上林县| 平陆县| 敖汉旗| 社旗县| 丽水市| 宁陕县|