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

Docker Nginx反向代理實(shí)現(xiàn)過程

 更新時(shí)間:2025年12月01日 08:42:20   作者:陽仔的屁仔  
本文介紹了如何使用Nginx實(shí)現(xiàn)反向代理,并與網(wǎng)關(guān)的代理功能進(jìn)行對比,通過Docker安裝Nginx,解決了容器中缺少vim編輯器的問題,詳細(xì)記錄了修改Nginx配置、啟動(dòng)微服務(wù)、驗(yàn)證反向代理的步驟

最近在系統(tǒng)性梳理網(wǎng)關(guān)的知識(shí),其中網(wǎng)關(guān)的的功能有一個(gè)是代理,正好咱們常用的Nginx也具備次功能,今天正好使用Nginx實(shí)現(xiàn)一下反向代理,與后面網(wǎng)關(guān)的代理做一個(gè)對比,因?yàn)槲沂褂玫膁ocker安裝的Nginx,與直接部署Nginx不太一樣正好記錄下遇到的問題,希望可以幫助到學(xué)習(xí)的同學(xué)。廢話不多說直接上案例。

環(huán)境準(zhǔn)備:mac、docker、spring-boot(兩個(gè)微服務(wù))

第一步:啟動(dòng)Nginx容器

docker ps -a
docker start 容器ID

第二步:進(jìn)入容器修改Nginx配置

docekr exec -it 容器ID /bin/bash

第三步:找到Nginx配置

cd /etc/nginx/

不能使用 vim 命令編輯該文件,因?yàn)閐ocker里的鏡像容器特別小,沒有該命令,咱們只能先查看一下該文件。

cat 之后注意看我用綠框框起來的部分,nginx.conf文件里使用的是/etc/nginx/conf.d/*.conf下的配置文件,那咱們在去修改/etc/nginx/conf.d/*.conf下的配置。

我們會(huì)發(fā)現(xiàn)就一個(gè)default.conf配置,不用懷疑就是它了。

cd /etc/nginx/conf.d/

初始的文件是這樣的,監(jiān)聽的80端口,location 指向的是nginx默認(rèn)的index.html頁面。

第四步:修改配置

怎么修改配置呢,前面咱們提到的是容器里去少vim工具無法直接編輯,當(dāng)然有三種方式我大概提一下,第一種是安裝相關(guān)工具,第二方式是copy到咱們自己的本地修改完以后在copy 到容器中重啟,第三種是將容器的掛在切換到本地,那么就可以直接在本地修改。當(dāng)然最好的方式是第三種,我們本次先使用第二種方式修改配置。

4.1:將容器的配置文件copy到本地并修改

sudo docker cp 34fb22321ad3:/etc/nginx/conf.d/default.conf  /Users/liluyang/mydocker

在本地就可以看到容器上copy下來的文件了,咱們動(dòng)手改改它。要實(shí)現(xiàn)反向代理也跟簡單就是修改nginx的server模塊。

我直接貼代碼:路由demo1服務(wù),路由demo2服務(wù)是咱們本次修改的重點(diǎn)。

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    #access_log  /var/log/nginx/host.access.log  main;

    #location / {
    #    root   /usr/share/nginx/html;
    #    index  index.html index.htm;
    #}

    # 路由demo1服務(wù)
    location /demo1 {
        proxy_pass http://10.33.148.22:8081;
    }
    # 路由demo2服務(wù)
    location /demo2 {
        proxy_pass http://localhost:8082;
    }

    #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   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

4.2:將修改好的配置文件copy到容器中

sudo docker cp /Users/liluyang/mydocker/default.conf 容器ID:/etc/nginx/conf.d/

4.3:重啟容器并進(jìn)入容器查看是否是咱們最新的文件

docker restart 容器ID
docker ps
docker exec -it 7a616a5079de /bin/bash
cd /etc/nginx/conf.d
cat default.conf 

下圖就是最新生效的配置文件,我用紅色框框起來的是重點(diǎn),因?yàn)槿萜髦性L問localhost的時(shí)候其實(shí)是訪問的容器中的localhost,docker容器中的localhost:8081,localhost:8082肯定是沒有對應(yīng)的服務(wù)的,后面在實(shí)際看一下是對應(yīng)的現(xiàn)象。

第五步:啟動(dòng)微服務(wù)

啟動(dòng)要反向代理的微服務(wù),我是在本地啟動(dòng)了兩個(gè)微服務(wù):demo1,demo2,端口分別為8081,8082。

    @GetMapping("demo1/api/demo1/start")
    public String demo1() {
        String str = "demo1 start ...";
        log.info(str);
        System.out.println(str);
        return str;
    }

   @GetMapping("demo2/api/demo2/start")
    public String demo1() {
        String str = "demo2 start ...";
        log.info(str);
        System.out.println(str);
        return str;
    }

啟動(dòng)咱們的服務(wù)之后如果沒有反向代理的話需要怎么訪問咱們的服務(wù)呢,可以在瀏覽器中輸入

http://localhost:8081/demo1/api/demo1/start

http://localhost:8082/demo2/api/demo2/start

第六步:驗(yàn)證Nginx反響代理

我們想要使用反向代理的話就可通過一個(gè)統(tǒng)一的域名端口來訪問咱們不同應(yīng)用了。可以看到我通過

http://localhost:8088/demo1/api/demo1/start可以訪問到服務(wù)demo1,并且Nginx的日志也是沒有問題。

但是如果我想反問demo2呢,前面咱們看到demo2在Nginx里的配置是有些許區(qū)別的,來來實(shí)驗(yàn)一下看看效果。http://localhost:8088/demo2/api/demo2/start,可以看到容器中的日志是鏈接refused。至于為啥前面應(yīng)說了要區(qū)分容器和本地的localhost的區(qū)別。咱們Nginx是采用的docker容器部署,微服務(wù)是本地不熟的。

那再次修改一下配置看看效果,完美解決。

    # 路由demo1服務(wù)
    location /demo1 {
        proxy_pass http://10.33.148.22:8081;
    }
    # 路由demo2服務(wù)
    location /demo2 {
        proxy_pass http://10.33.148.22:8082;
    }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • docker-compose如何安裝skywalking

    docker-compose如何安裝skywalking

    這篇文章主要介紹了docker-compose如何安裝skywalking問題,
    2024-01-01
  • docker中查看日志的幾種常見方式

    docker中查看日志的幾種常見方式

    這篇文章主要給大家介紹了關(guān)于docker中查看日志的幾種常見方式,Docker提供一些方式來查看容器的日志,文中將每種方法都給出了代碼示例,需要的朋友可以參考下
    2023-08-08
  • docker 詳解設(shè)置容器防火墻

    docker 詳解設(shè)置容器防火墻

    這篇文章主要介紹了docker 詳解設(shè)置容器防火墻的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 使用Docker部署GPUStack過程

    使用Docker部署GPUStack過程

    GPUStack是一款基于Docker的GPU計(jì)算平臺(tái),支持異構(gòu)GPU集群,通過簡單的Docker命令即可啟動(dòng)GPUStack服務(wù)器和worker,并通過Web界面進(jìn)行管理和監(jiān)控
    2026-01-01
  • 深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    深入理解 Docker 數(shù)據(jù)卷(Data Volume)

    本文詳細(xì)介紹了Docker數(shù)據(jù)卷(DataVolume)的概念、作用、使用命令、掛載方式以及最佳實(shí)踐,數(shù)據(jù)卷是Docker中實(shí)現(xiàn)數(shù)據(jù)持久化和共享的關(guān)鍵機(jī)制之一,通過本文的學(xué)習(xí),讀者可以更好地掌握數(shù)據(jù)卷的使用方法,從而在容器化應(yīng)用中進(jìn)行有效的數(shù)據(jù)管理
    2024-11-11
  • Ubuntu正確安裝Docker和Docker?Compose的步驟詳細(xì)講解

    Ubuntu正確安裝Docker和Docker?Compose的步驟詳細(xì)講解

    Docker Compose是一個(gè)用于定義和運(yùn)行多容器Docker應(yīng)用的工具,這篇文章主要介紹了Ubuntu正確安裝Docker和Docker?Compose的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-11-11
  • docker搭建本地私有倉庫的實(shí)現(xiàn)

    docker搭建本地私有倉庫的實(shí)現(xiàn)

    有時(shí)候使用Docker Hub這樣的公共倉庫可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉庫供私人使用,本文主要介紹了docker搭建本地私有倉庫的實(shí)現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Docker 提交倉庫的方法

    Docker 提交倉庫的方法

    這篇文章主要介紹了Docker 提交倉庫的方法,把我們東西上傳DockerHub,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • docker容器啟動(dòng)不起來的若干問題解決

    docker容器啟動(dòng)不起來的若干問題解決

    本文主要介紹了docker容器啟動(dòng)不起來的若干問題解決,文中通過圖文示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • docker容器下配置jupyter notebook的操作

    docker容器下配置jupyter notebook的操作

    這篇文章主要介紹了docker容器下配置jupyter notebook的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03

最新評論

长乐市| 石柱| 道孚县| 垫江县| 来宾市| 华坪县| 吉首市| 谢通门县| 定襄县| 城固县| 清远市| 红原县| 新安县| 社旗县| 高青县| 屯门区| 监利县| 永年县| 新蔡县| 邯郸市| 沈丘县| 武威市| 恩施市| 娱乐| 元谋县| 临高县| 麻阳| 澄迈县| 临夏市| 河津市| 日土县| 新竹县| 安化县| 环江| 新泰市| 大厂| 嘉荫县| 临沭县| 琼海市| 宜宾县| 甘孜县|