部署環(huán)境
項目 | 說明 |
---|---|
操作系統(tǒng) | macOS Catalina |
安裝軟件 | Docker |
macOS或者windows直接在docker官網(wǎng)下載對應(yīng)的桌面版進行安裝黄选,
Linux服務(wù)器可查看Linux Docker 安裝官方安裝指南
配置文件
創(chuàng)建需要的文件夾
mkdir -p ~/docker-nginx/{conf,conf.d,log,html}
目錄 | 說明 |
---|---|
conf | 存放nginx缺省配置文件 |
conf.d | 存放nginx各個服務(wù)配置文件 |
log | 存放log配置文件 |
html | 存放前端打包的發(fā)布文件 |
新增nginx配置文件
在~/docker-nginx/conf/目錄下新增==nginx.conf==
vi ~/docker-nginx/conf/nginx.conf
user nginx;
# 工作進程數(shù) 缺省為1卒密; CPU核心數(shù)尸饺,(雙核4線程炕淮,可以設(shè)置為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;
}
在~/docker-nginx/conf.d/目錄下新增==default.conf==
vi ~/docker-nginx/conf.d/default.conf
server {
listen 80;
# localhost 在發(fā)布時修改成對應(yīng)的域名
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;
}
# 反向代理配置鹏秋,此配置可實現(xiàn)跨域抗悍,后端負載均衡等需求
location /api {
proxy_pass http://xxx.xxx.xxx.xxx:8080;
# access_log "logs/test.log";
}
}
啟動容器
執(zhí)行下面的命令在啟動容器時會自動pull NGINX鏡像
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
將前端打包的待發(fā)布的文件copy到~/docker-nginx/html
這里以vue項目為例將dist中的內(nèi)容復(fù)制到html文件夾下
在瀏覽器訪問http://localhost:80
總結(jié)
Docker啟動Nginx需要關(guān)注3個需要掛載出來的路徑
分別存放了
- 服務(wù)配置文件
- 服務(wù)log輸出文件夾(方便運維)
- 前端發(fā)布文件