本文已参与「新人创作礼」活动,一起开启掘金创作之路。
基于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