使用docker部署nginx
一、编写default.conf
在你的docker挂载目录里面创建一个default.conf,只需要写server{}里的内容,以下是简单示例。
server {
listen 80;
# 改成你的域名
server_name youhost.com;
location / {
root /usr/share/nginx/html/wwwroot/pc;
index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
######### 后端服务配置假如是9003端口号
location /admin-server/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 这里要写你的域名+端口号,不要使用localhost或者127.0.0.1
proxy_pass http://youhost.com:9003/;
}
###################前端配置
location /pc {
#你的静态资源位置
alias /usr/share/nginx/html/wwwroot/pc/;
index index.html;
}
}
二、用docker启动nginx
docker run -d -p 80:80 --name nginx-web \
-v /www:/usr/share/nginx/html \
-v /usr/local/dockerfile/nginx/logs:/var/log/nginx \
-v /usr/local/dockerfile/nginx/default.conf:/etc/nginx/conf.d/default.conf \
nginx
docker语句 | 说明 |
---|---|
-v /www:/usr/share/nginx/html | 指定静态资源存放路径,也可以存放到其他地方,具体看你配置咋写 |
-v /usr/local/dockerfile/nginx/logs:/var/log/nginx | 挂载日志没啥好说的 |
-v /usr/local/dockerfile/nginx/default.conf:/etc/nginx/conf.d/default.conf | docker配置nginx只需要配置 default.conf文件中的server{}即可,你也可以把etc/nginx/nginx.conf挂在出来 |
总结
使用docker部署nginx坑的地方就在proxy_pass这里一定写成你的域名+端口。写localhost的是直接在linux安装nginx服务的那种。