Docker部署Nginx 以及Nginx的基本使用

06-01 1027阅读

如何使用Docker部署和配置Nginx:从拉取镜像到挂载配置

Nginx是一个高性能的HTTP和反向代理服务器,广泛应用于Web服务、负载均衡和静态资源托管等领域。通过Docker部署Nginx可以简化环境配置和管理。本文将详细介绍如何拉取Nginx镜像、创建容器、挂载配置文件以及管理Nginx服务。

Docker部署Nginx 以及Nginx的基本使用


1. 拉取Nginx镜像

首先,从Docker Hub拉取指定版本的Nginx镜像。例如,拉取1.16.1版本的Nginx:

docker pull nginx:1.16.1

2. 创建挂载目录

为了持久化Nginx的配置、日志和静态资源文件,需要在宿主机上创建挂载目录:

mkdir -p /home/nginx/{conf,log,html}

3. 从容器中复制配置文件

先运行一个临时Nginx容器,将容器中的配置文件复制到宿主机挂载目录:

docker run --name nginx -p 80:80 -d nginx:1.16.1
# 复制配置文件
docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/nginx/

复制完成后,停止并删除临时容器:

docker stop nginx
docker rm -f nginx

4. 创建并运行Nginx容器

使用挂载目录启动Nginx容器,持久化配置和资源文件:

docker run \
-p 9002:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:1.16.1

参数说明:

  • -p 9002:80:将容器的80端口映射到宿主机的9002端口。
  • --name nginx:指定容器名称为nginx。
  • -v:挂载配置文件、日志和静态资源目录。
  • -d:后台运行容器。

    一篇文章学会Nginx的基本使用

    Nginx作为一款高性能的Web服务器和反向代理服务器,广泛应用于生产环境。以下介绍Nginx的常用命令、配置文件结构和具体应用场景。

    Docker部署Nginx 以及Nginx的基本使用


    1. Nginx常用命令
    nginx -v       # 查看Nginx版本
    nginx -t       # 检查配置文件是否正确
    nginx -s stop  # 停止Nginx
    nginx -s reload # 重新加载配置文件
    docker restart nginx # 重启Nginx容器

    2. Nginx配置文件结构

    Nginx配置文件通常包含以下部分:

    1. 全局块:配置Nginx运行的全局参数,如用户、进程数、日志路径等。
    2. events块:配置网络连接相关参数,如最大连接数。
    3. http块:代理、缓存、日志记录、虚拟主机等配置。
    4. server块:配置具体站点的监听端口、域名等。
    5. location块:配置URL路径的匹配规则和处理方式。

    示例配置文件:

    # 全局块
    user  nginx;
    worker_processes  1;
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    # events块
    events {
        worker_connections  1024;
    }
    # http块
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
        sendfile        on;
        keepalive_timeout  65;
        include /etc/nginx/conf.d/*.conf;
        # server块
        server {
            listen       80;
            server_name  localhost;
            # location块
            location / {
                root   /usr/share/nginx/html;
                index  index.html index.htm;
            }
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   /usr/share/nginx/html;
            }
        }
    }

    3. Nginx具体应用
    1. 部署静态资源:

      Nginx可以将静态资源(如HTML、CSS、JS、图片)高效地部署和提供给用户。

      示例配置:

    server {
        listen 80;
        server_name localhost;
        location / {
            root /usr/share/nginx/html;
            index index.html;
        }
    }
    1. 反向代理:

      Nginx可以将客户端请求转发到后端服务器,隐藏目标服务器的地址。

      示例配置:

    server {
        listen 82;
        server_name localhost;
        location / {
            proxy_pass http://192.168.138.101:8080;
        }
    }
    1. 负载均衡:

      Nginx可以将请求分发到多个后端服务器,提高系统的可用性和性能。

      示例配置:

    upstream targetserver {
        server 192.168.138.101:8080 weight=10;
        server 192.168.138.101:8081 weight=5;
    }
    server {
        listen 8080;
        server_name localhost;
        location / {
            proxy_pass http://targetserver;
        }
    }

    负载均衡策略:

    • 轮询(默认)
    • 权重(weight)
    • IP哈希(ip_hash)
    • 最少连接(least_conn)
    • URL哈希(url_hash)
      结语

      通过本文,你可以快速掌握如何在Docker中部署Nginx、挂载配置文件,以及Nginx的基本使用方法和应用场景。希望这些内容能够帮助你更好地管理和优化Web服务。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码