• Docker&Nginx-安装与配置


    创建Nginx容器

    1. 下载nginx镜像
    docker pull nginx
    
    1. 创建nginx容器
    docker run --name nginxweb -p 8080:80 -d nginx
    
    1. 这样一来nginx就创建好了,直接访问ip:8080就可以看到nginx安装好的页面

    图片

    4、改变配置实现更多功能,这种情况下得进入容器更改配置信息

    docker exec -it nginxweb /bin/bash
    

    配置文件在容器内/etc/nginx/路径下的nginx.conf和conf.d文件夹内的default.conf文件
    图片

    但是默认使用vi或vim去修改是没有用的,因为没得,得去安装,这种情况下就很麻烦,更常用的是做个数据卷,将容器内文件映射到容器外,这样改变主机文件就改变了容器内文件,方便些。

    如果不嫌麻烦在容器内改完配置文件后,重启容器

    docker restart nginxweb
    

    这样不是很方便,先删除容器。

    docker stop nginxweb
    docker rm nginxweb
    

    挂载配置文件

    在主机上设置配置文件,以方便主机直接修改nginx容器内的配置信息。

    建立映射文件夹

    1. 先建立几个文件夹用于存放数据卷的
    mkdir -p /docker/nginx
    mkdir -p /docker/nginx/conf
    mkdir -p /docker/nginx/www
    mkdir -p /docker/nginx/logs
    

    这几个文件对应着nginx内的配置文件,如此下来,重新创建nginx容器并指定数据卷,这样当我们修改本地文件时候,也就是nginx容器内部文件修改了。
    2. 创建一个临时容器用来复制配置信息

    docker run --name nginxweb -p 8080:80 -d nginx
    
    1. 先将临时容器内已有的配置信息拷贝到主机文件中
    docker cp nginxweb:/etc/nginx/nginx.conf /docker/nginx
    docker cp nginxweb:/etc/nginx/conf.d /docker/nginx/conf
    docker cp nginxweb:/usr/share/nginx/html /docker/nginx/www
    docker cp nginxweb:/var/log/nginx /docker/nginx/logs
    

    详细描述

    • 第一步,将容器内etc/nginx/nginx.conf文件拷贝到主机docker/nginx文件夹下
    • 第二步,将容器内etc/nginx/conf.d文件夹拷贝到主机docker/nginx/conf文件夹内,这样主机conf文件夹内有文件夹conf.d,这个文件夹内有default.d文件
    • 第三步,将容器内usr/share/nginx/html文件夹拷贝到主机docker/nginx/www文件夹内,这样主机www文件夹内有文件夹html,这个文件夹内有index.html和50x.html文件
    • 第四步,将容器内var/log/nginx文件夹拷贝到主机docker/nginx/logs文件夹内,这样主机logs文件夹内有文件夹nginx,这个文件夹内有access.log和error.log文件
    1. 删除临时容器
    docker stop nginxweb
    docker rm nginxweb
    

    再次创建nginx容器

    创建带数据卷映射的容器

    docker run 
    --name nginxweb 
    -p 8080:80 
    -v /docker/nginx/nginx.conf:/etc/nginx/nginx.conf 
    -v /docker/nginx/conf/conf.d:/etc/nginx/conf.d 
    -v /docker/nginx/www:/usr/share/nginx 
    -v /docker/nginx/logs:/var/log 
    -d 
    nginx
    

    命令解释:

    • --name 容器名字
    • -p 映射端口,将宿主机的8080端口和容器的80端口进行绑定
    • -v 挂载文件
      • 第一个,将主机的nginx.conf映射到容器内的nginx.conf文件,也就是将这个nginx.conf文件拷贝到容器内nginx文件夹下的nginx.conf文件
      • 第二个,将主机的conf.d文件夹映射到容器内conf.d文件夹,也就是将conf.d文件夹内的defaut.d文件拷贝到容器内conf.d文件夹内
      • 第三个,将主机的www文件夹映射到容器内nginx文件夹下,也就是将www文件夹内的html文件夹拷贝到容器内nginx文件夹内
      • 第四个,将主机的logs文件夹映射到容器内log文件夹下,也就是将logs文件夹内的nginx文件夹拷贝到容器内log文件夹内
    • -d 后台进程
    • 最后一个是镜像名

    这样一来,再次访问ip:8080又可以看到Nginx安装成功的页面了。

    更改配置实现功能

    反向代理

    修改/docker/nginx/nginx.conf文件,增加反向代理设置,此处我下载了一个winscp工具以方便修改文件。从第31行开始,增加反向代理配置。

    user nginx;
    worker_processes auto;
    
    error_log /var/log/nginx/error.log notice;
    pid    /var/run/nginx.pid;
    
    events {
      worker_connections 1024;
    }
    
    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;
      #tcp_nopush  on;
    
      keepalive_timeout 65;
    
      #gzip on;
    
      include /etc/nginx/conf.d/*.conf;
      server {
        location / {
          proxy_pass http://119.3.138.127:80/;
          proxy_redirect default;
       }
      }
    }
    
    

    如此一来保存后重新启动容器

    docker restart nginxweb
    

    再次访问,发现并不能直接请求到期望的代理地址,而是仍然看到欢迎页。
    图片

    因为/docker nginx/conf/conf.d中的default.conf文件夹内有这个location /配置,在nginx.conf中通过include使用了这个文件,优先匹配。

    • 注释掉Include后,不走欢迎页面,直接会请求到代理地址

    图片

    • 或是直接删除默认文件conf.d文件夹内的default.conf也行,这样就会直接使用nginx.conf中的配置。

    这样一来,便方便的将请求转发了,还有很多参数的使用此处不详细说明。

    2021-09-19,望技术有成后能回来看见自己的脚步

  • 相关阅读:
    企业如何在智能制造的时代保持竞争力?
    汽车行业MES系统在产品追溯方面的应用分析
    你能想象未来的MES系统是什么样吗?
    智能制造进入下半场?APS如何进行优化
    【案例】如何让阀门制造提高排产效率?APS系统帮你实现
    APS系统的现状以及与MES系统的关联
    MES被重新定义?做到这几点才算智能制造
    python部分笔记
    BUUCTF Hack World
    BUUCTF--checkin
  • 原文地址:https://www.cnblogs.com/CKExp/p/15313101.html
Copyright © 2020-2023  润新知