• 使用 Docker Compose 部署 Nginx 配置虚拟主机


    Nginx 简介

    Nginx 是一款高性能的 HTTP 服务器、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。官方测试 Nginx 能够支撑 5 万并发链接,并且 CPU、内存等资源消耗却非常低,运行非常稳定。
     

    Nginx 的应用场景

    • HTTP 服务器:Nginx 是一个 HTTP 服务可以独立提供 HTTP 服务。可以做网页静态服务器。
    • 虚拟主机:可以实现在一台服务器虚拟出多个网站。
    • 反向代理 + 负载均衡:当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用 Nginx 做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。

    容器编排

    服务器 IP:192.168.230.130

    • 创建 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.130

    什么是虚拟主机

    虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供 www 服务,这样就可以实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

    通过 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 节点代表一个虚拟主机

    • 创建 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

    • 文章作者:彭超

    • 本文首发于个人博客:https://antoniopeng.com/2019/09/08/nginx/%E4%BD%BF%E7%94%A8DockerCompose%E9%83%A8%E7%BD%B2Nginx%E9%85%8D%E7%BD%AE%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA/

    • 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 彭超 | Blog

  • 相关阅读:
    hdu 2732 Leapin' Lizards 最大流 拆点 建图
    Atcoder CODE FESTIVAL 2017 qual C D
    Codeforces Round #442 Div.2 A B C D E
    hdu 3549 Flow Problem 最大流 Dinic
    2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest I. Photo Processing
    Atcoder CODE FESTIVAL 2017 qual C C
    2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest A E F G H I K M
    hdu 5952 Counting Cliques 求图中指定大小的团的个数 暴搜
    TensorFlow深度学习,一篇文章就够了
    Vim常用的基本操作
  • 原文地址:https://www.cnblogs.com/antoniopeng/p/12687444.html
Copyright © 2020-2023  润新知