2、基于docker进行nginx部署

215 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

基于docker进行nginx部署

目录结构

在这里插入图片描述
Tips🚩:dist及log目录为自动生成,不需要创建

conf.d

此目录为nginx配置文件存储路径

default.conf源码


server {
    listen      80;  # nginx容器内部使用80端口
    server_name localhost;
    charset     utf-8;
    access_log  /var/log/nginx/nginx_access.log;
    error_log   /var/log/nginx/nginx_error.log;
    client_max_body_size        100M;

    location / {
        add_header      'Access-Control-Expose-Headers'    'authorization';
        include /etc/nginx/conf.d/uwsgi_params; # uwsgi_params download url:https://github.com/nginx/nginx/b                                                                                                  lob/master/conf/uwsgi_params
        uwsgi_pass      172.20.0.11:8001;  # django项目容器地址及端口
    }

    location /static {
        alias   /bm-system/static/;  # 加载compose中挂载的项目static目录
    }

    location /media {
        alias /bm-system/media/;  # 加载compose中挂载的项目media目录
    }
}

uwsgi_params源码


uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

docker-compose.yaml

此文件为docker-compose启动配置文件

docker-compose源码

version: '3'

services:
  nginx:
    image: nginx:latest
    container_name: nginx
    restart: always
    privileged: true
    environment:
      - TZ=Asiz/Shanghai
    networks:
      my-network:
        ipv4_address: "172.20.0.10"
    ports:
      - 8080:80
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./conf.d:/etc/nginx/conf.d
      - ./log:/var/log/nginx
      - ./dist:/opt/dist:ro
      - ../bm-system/static:/bm-system/static  # 挂载项目静态目录,conf中使用
      - ../bm-system/media:/bm-system/media  # 挂在项目upload目录,conf中使用

networks:
  my-network:
    external: true  # 使用外部现有network