使用 Docker Compose 部署 Nginx 配置虛擬主機

Nginx 簡介

Nginx 是一款高性能的 HTTP 服務器、反向代理服務器及電子郵件(IMAP/POP3)代理服務器。官方測試 Nginx 可以支撐 5 萬併發連接,而且 CPU、內存等資源消耗卻很是低,運行很是穩定。  html

Nginx 的應用場景

  • HTTP 服務器:Nginx 是一個 HTTP 服務能夠獨立提供 HTTP 服務。能夠作網頁靜態服務器。
  • 虛擬主機:能夠實如今一臺服務器虛擬出多個網站。
  • 反向代理 + 負載均衡:當網站的訪問量達到必定程度後,單臺服務器不能知足用戶的請求時,須要用多臺服務器集羣可使用 Nginx 作反向代理。而且多臺服務器能夠平均分擔負載,不會由於某臺服務器負載高宕機而某臺服務器閒置的狀況。

容器編排

服務器 IP:192.168.230.130nginx

  • 建立 docker-compose.ymlweb

    version: '3.1'
    services:
     nginx:
     restart: always
     image: nginx
     container_name: nginx
     ports:
     - 80:80
     volumes:
     - ./conf/nginx.conf:/etc/nginx/nginx.conf
     - ./wwwroot:/usr/share/nginx/wwwroot
    複製代碼
  • 啓動容器docker

    $ docker-compose up -d
    複製代碼
  • 打開瀏覽器訪問 192.168.230.130瀏覽器

什麼是虛擬主機

虛擬主機是一種特殊的軟硬件技術,它能夠將網絡上的每一臺計算機分紅多個虛擬主機,每一個虛擬主機能夠獨立對外提供 www 服務,這樣就能夠實現一臺主機對外提供多個 web 服務,每一個虛擬主機之間是獨立的,互不影響的。bash

經過 Nginx 能夠實現虛擬主機的配置,Nginx 支持三種類型的虛擬主機配置服務器

  • 基於 IP 的虛擬主機
  • 基於域名的虛擬主機
  • 基於端口的虛擬主機

功能需求

  • Nginx 服務器:192.168.230.130
  • Nginx 對外提供 808080 兩個端口監聽服務
  • 請求 80 端口則請求 html80 目錄下的 html
  • 請求 8080 端口則請求 html8080 目錄下的 html

配置 Nginx 虛擬主機

  • /usr/local/docker/nginx/wwwroot 目錄下建立 html80html8080 兩個目錄,並分別建立兩個 index.html 文件網絡

  • /usr/local/docker/nginx/conf 目錄下建立 nginx.conf,掛載 Nginx 配置文件併發

    user  nginx;
    # 指定使用 CPU 資源數量
    worker_processes  1;
    
    events {
        # 鏈接數
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        
    	# 虛擬主機一配置
        server {
            # 指定端口
            listen       80;
            # 指定 IP (能夠是域名)
            server_name  192.168.230.130;
            location / {
                # 虛擬主機內的資源訪問路徑
                root   /usr/share/nginx/wwwroot/html8080;
                # 首頁
                index  index.html index.htm;
            }
        }
    
        # 虛擬主機二配置
        server {
            listen       8080;
            server_name  192.168.230.130;
            location / {
                root   /usr/share/nginx/wwwroot/html8080;
                index  index.html index.htm;
            }
        }
    }
    複製代碼

    每一個 server 節點表明一個虛擬主機app

  • 建立 docker-compose.yml

    version: '3.1'
    services:
     nginx:
     restart: always
     image: nginx
     container_name: nginx
     ports:
     - 80:80
     volumes:
     - ./conf/nginx.conf:/etc/nginx/nginx.conf
     - ./wwwroot:/usr/share/nginx/wwwroot
    複製代碼
  • 啓動容器

    $ docker-compose up -d
    複製代碼
  • 打開瀏覽器分別訪問 192.168.230.130192.168.230.130:8080

  • 文章做者:彭超

  • 本文首發於我的博客:antoniopeng.com/2019/09/08/…

  • 版權聲明:本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 彭超 | Blog

相關文章
相關標籤/搜索