使用 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

相关文章
相关标签/搜索