Skip to main content

Docker 安装 nginx

# 安装镜像-生成一个nginx管理文件
docker pull nginx
# 先启动,生成配置文件之后再删除。
docker run --name demo -d -p 80:80 nginx
mkdir -p /home/nginx/html
mkdir -p /home/nginx/ssl
# 生产映射文件
docker cp demo:/etc/nginx/nginx.conf /home/nginx/
docker cp demo:/etc/nginx/conf.d/ /home/nginx/
docker cp demo:/usr/share/nginx/html/ /home/nginx/html/
docker cp demo:/usr/share/nginx/ssl/ /home/nginx/
# 文件映射结束,删除容器
docker rm -f demo
# 创建容器
docker run --name demo -p 80:80 -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf.d:/etc/nginx/conf.d -v /home/nginx/ssl:/etc/nginx/ssl --restart=always -d nginx:latest
# 到这里基础的nginx配置已经完成,可以通过下面的地址查看效果,防火墙记得开!!!
# 公网ip:80

配置域名

  1. 在自己的/home/nginx/html/新建 my-demo 文件夹,会自动映射到容器内的/usr/share/nginx/html/my-demo 中,然后创建 index.html 文件,内容随意。
  2. 在你的/home/nginx/conf.d 文件夹下面创建 chase-top.com.conf 文件(chase-top.com 是我的域名,换成自己的就行)
  3. 编辑 chase-top.com.conf 内容
server {
listen 80;
listen [::]:80;
server_name www.chase-top.com;

# 开启gzip 压缩
gzip on;
gzip_http_version 1.1;
gzip_comp_level 4;
gzip_min_length 1000;
gzip_types text/plain application/javascript text/css;

location / {
try_files $uri $uri/ /index.html;
root /usr/share/nginx/html/chase-top.com/dist;
index index.html;
}

location ~* ^/upload/ {
rewrite ^/upload/(.*)$ /upload/$1 break;
proxy_pass http://chase-top.com;
}

location ~* ^/api/ {
rewrite ^/api/(.*)$ /api/$1 break;
proxy_pass https://127.0.0.1:3000;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

修改完成之后重启服务,域名解析生效

docker restart demo