部署 nginx docker

安装 docker nginx

1
2
# 下载最新版 nginx docker 镜像
docker pull nginx

配置文件准备

创建需要的文件夹

1
mkdir -p ~/docker-nginx/{conf,conf.d,log,html}
  • conf 存放nginx缺省配置文件
  • conf.d 存放nginx 各个服务配置
  • log 存放log 配置文件
  • 存放前端打包的发布文件

新增nginx 配置文件

1
vi ~/docker-nginx/conf/nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

user nginx;
# 工作进程数 缺省为1; CPU核心数,(双核4线程,可以设置为4)
worker_processes 1;
error_log /var/log/nginx/error.log warn;
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;
keepalive_timeout 65;
# 会扫描/etc/nginx/conf.d/文件夹下面所有的配置文件
include /etc/nginx/conf.d/*.conf;
}

新增 default.conf

1
vi ~/docker-nginx/conf.d/default.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
listen 80;
# localhost 在发布时修改成对应的域名
server_name localhost;

#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 反向代理配置,此配置可实现跨域,后端负载均衡等需求
location /api {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
# access_log "logs/test.log";
}
}

启动容器

1
2
3
4
5
6
7
docker run --name myNginx \
-d -p 80:80 \
-v ~/docker-nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v ~/docker-nginx/conf.d:/etc/nginx/conf.d \
-v ~/docker-nginx/log:/var/log/nginx \
-v ~/docker-nginx/html:/usr/share/nginx/html \
nginx

将前端打包的文件放到 ~/docker-nginx/html

总结

Docker启动Nginx需要关注3个需要挂载出来的路径

  • 服务配置文件
  • 服务log输出文件夹(方便运维)
  • 前端发布文件
thank u !