通過docker-compose搭建 Nginx 反向代理伺服器

weixin_39904272發表於2020-09-29

一 docker pull nginx 映象,通過映象啟動 nginx 容器,把 nginx 中的配置檔案複製到宿主機指定目錄

  1. docker pull

     docker pull nginx:latest
    
  2. 啟動 nginx 容器 , 複製 容器內的配置檔案到宿主機

     [root@localhost nginx]# pwd
     /usr/local/docker/nginx
     [root@localhost nginx]#	
     [root@localhost nginx]# docker run -d --name nginx -p 80:80 nginx
     註釋:
     	--name nginx 		給容器起個名字叫 nginx
     	-p 80:80				把容器的80埠對映到宿主機上
     	nginx					映象名字
     [root@localhost nginx]# docker cp nginx:/etc/nginx/conf.d/default.conf .
     [root@localhost nginx]# docker cp nginx:/etc/nginx/nginx.conf .
     註釋:
     	cp			複製
     	nginx		容器名字
     	/etc/nginx/nginx.conf或者/etc/nginx/conf.d/default.conf	容器內指定檔案地址
     	.			這個點代表的是宿主機的當前目錄
    

二 編寫 Nginx 的 docker-compose.yml 和 nginx.conf

docker-compose.yml

version: '3'
services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    ports:
      - 80:80
    volumes:
      - /usr/local/docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - /usr/local/docker/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /usr/local/docker/nginx/html:/usr/share/nginx
      - /usr/local/docker/nginx/log:/var/log/nginx

nginx.conf

user nginx;
worker_processes 1;
events {
    worker_connections 1024;
}
http {
    include mime.types;
    default_type application/octet-stream;
    sendfile on;
    keepalive_timeout 65;
    upstream web_admin {
        server 10.0.0.32:8100;
    }
    upstream web_protal {
        server 10.0.0.32:8101;
    }	  
    server {
        listen 80;
        server_name admin.flying.com;
        location / {
            proxy_pass http://web_admin;
            index index.jsp index.html index.htm;
        }
    }
    server {
        listen 80;
        server_name www.flying.com;
        location / {
            proxy_pass http://web_protal;
            index index.jsp index.html index.htm;
        }
    }
}


註釋---以 web_admin 為例:
上游服務:
	1 定義一個上游:	upstream 
	2 上游服務名稱( 域名 ):web_admin
	3 上游服務ip+埠:10.0.0.32:8100
本地服務:
	1 定義一個本地服務:sever
	2 監聽本地服務 80 埠:80
	3 本地服務名稱 ( 域名 ): admin.flying.com
	4 位置在( / ) 根目錄: location / 
	5 通過代理:http://web_admin
	6 支援的頁面格式:index index.jsp index.html index.htm;

監聽 admin.flying.com 服務的 80 埠,通過 http://web_admin 代理,請求上游伺服器的 10.0.0.32:8100 服務。

通過代理 http://web_admin 伺服器。響應 admin.flying.com 服務的請求。

注意事項:
1 要開放 8100 和 8101 這兩個代理伺服器的埠。

相關文章