自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

只需三步,使用Docker創(chuàng)建Nginx反向代理

云計(jì)算 云原生
在Web架構(gòu)中,敏捷性和可伸縮性是必不可少的,在管理服務(wù)的同時(shí)也需要保證最佳性能。為了達(dá)到這一目標(biāo),可以使用反向代理。反向代理非常靈活,可簡化客戶端和服務(wù)器之間的交互和通信。

在Web架構(gòu)中,敏捷性和可伸縮性是必不可少的,在管理服務(wù)的同時(shí)也需要保證最佳性能。

為了達(dá)到這一目標(biāo),可以使用反向代理。反向代理非常靈活,可簡化客戶端和服務(wù)器之間的交互和通信。

如圖所示,反向代理就像大樓里的接待員,該大樓有各個(gè)部門和區(qū)域。接待員成功地將客戶或訪客重定向到適當(dāng)?shù)牟块T。他們負(fù)責(zé)指引訪客,處理查詢,并確保各個(gè)部門之間的分發(fā)。

圖片圖片

反向代理的用途包括:

  1. 用于可伸縮性的負(fù)載均衡。
  2. 終止SSL和TLS。
  3. 將子域映射到特定路徑。

本文將使用Nginx和Docker容器來設(shè)置反向代理。

第1步,創(chuàng)建應(yīng)用程序

下載完整代碼(https://github.com/DiptoChakrabarty/nginx-reverse-proxy)。

我們從構(gòu)建作為代理的應(yīng)用程序開始。

編寫Docker文件,在訪問此應(yīng)用程序的/端點(diǎn)時(shí)顯示一個(gè)簡單的HTML頁面。

FROM nginx:stable-alpine
COPY index.html /usr/share/nginx/html/index.html

index.html文件如下:

<h1>This is the main app</h1>

編寫一個(gè)簡單的Docker Compose文件,來運(yùn)行這個(gè)應(yīng)用程序。

version : '3.7'
services :
  web:
    build: .
    ports:
    - "8080:80"

通過運(yùn)行以下命令啟動Docker Compose:

docker-compose up

訪問localhost:8080,應(yīng)該能夠看到以下內(nèi)容。

圖片圖片

以類似的方式創(chuàng)建兩個(gè)不同的應(yīng)用程序,使用兩個(gè)HTML文件和相同的Dockerfile。

This is html file for app1
<h1>This is APP 1</h1>

This is html file for app2
<h1>This is APP 2</h1>

修改Docker Compose文件以啟動這兩個(gè)容器:

version : '3.7'
services :
  web:
    build: .
    ports:
    - "8080:80"
    restart: always
  app1:
    build: ./app1/
    ports:
    - "8085:80"
    restart: always
  app2:
    build: ./app2
    ports:
    - "8010:80"
    restart: always

訪問端口8085和8010時(shí),可以看到如下內(nèi)容:

圖片圖片

第2步,編寫Nginx配置

編寫Nginx配置文件,以在訪問/app時(shí),在app1和app2之間進(jìn)行代理,而在/端點(diǎn)上只顯示主頁面。

Nginx配置如下所示:

worker_processes  1;  ## Default: 1
worker_rlimit_nofile 8192;

http {
  
  upstream cloud_server_com {
    server app1:80;
    server app2:80;
  }
  server {
    listen   80;
    location /app/ {
      proxy_pass      http://cloud_server_com/;
    }
    location / {
      root   /usr/share/nginx/html;
      index  index.html;
    }
    
  }
}

配置文件定義了組合在一起的服務(wù)器組。在這里,我們指定了在Docker Compose文件中定義的容器名稱及其端口號。

location幫助Nginx定義如何處理特定端點(diǎn)的請求。/app/將請求發(fā)送到cloud_server_com上游,而cloud_server_com就是兩個(gè)應(yīng)用程序的容器。

proxy_pass確定了請求將被重定向到哪里。

現(xiàn)在,Docker Compose文件需要能夠讀取此配置,因此需要修改Compose文件,如下所示:

version : '3.7'
services :
  web:
    build: .
    ports:
    - "8080:80"
    volumes:
      - ./config/nginx.conf:/etc/nginx/nginx.conf
    restart: always
  app1:
    build: ./app1/
    ports:
    - "8085:80"
    restart: always
  app2:
    build: ./app2
    ports:
    - "8010:80"
    restart: always

第3步,運(yùn)行容器

運(yùn)行docker-compose up命令,然后在瀏覽器中查看反向代理的工作原理。

這是在/端點(diǎn)上運(yùn)行的主應(yīng)用程序:

圖片圖片

但是,在訪問/app/端點(diǎn)時(shí),它返回兩個(gè)不同的服務(wù)器,代理逐個(gè)發(fā)送請求到app1和app2。

圖片 圖片 圖片

責(zé)任編輯:武曉燕 來源: Java學(xué)研大本營
相關(guān)推薦

2021-03-02 07:02:45

Linux操作系統(tǒng)

2021-03-23 10:25:01

Linux 系統(tǒng) 數(shù)據(jù)

2010-06-30 13:02:30

2014-06-24 14:42:16

MAE展會暢快網(wǎng)絡(luò)

2024-01-29 00:25:00

VS Code開發(fā)插件

2015-06-09 09:25:34

2021-07-13 08:14:27

色彩用色類型輔助色

2009-08-18 10:11:09

代理服務(wù)器設(shè)置代理服務(wù)器地址

2010-09-16 18:38:32

863HPClinpack

2022-07-01 07:33:24

nginx反向代理測試

2010-05-05 22:05:32

nginx負(fù)載均衡

2009-11-30 09:17:59

2019-07-30 08:30:40

Python主流數(shù)據(jù)庫

2023-12-05 09:14:54

2020-10-22 08:05:46

Nginx

2018-01-23 06:41:46

SaaS云服務(wù)企業(yè)級

2018-11-12 12:17:00

2019-06-19 15:34:39

Nginx反向代理負(fù)載均衡

2023-09-13 07:16:31

Ngnix代理服務(wù)器

2020-08-06 08:23:24

Nginx反向代理Web安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號