docker+nginx部署vue的dist

2020-03-12  本文已影响0人  周周周__

docker+nginx
对于常用的nginx部署项目的话,一般都由反向代理进行配置负载均衡,静态文件也是走的nginx。但是部署前后端分离开发的项目时,对于前端界面的访问,路由用的则是nginx进行转发,但是前后端的项目时不同的,走的接口就可能属于跨域的请求(这是我遇到的坑)

1、拉镜像:docker pull nginx

其实也是比较简单的,主要的就是复制当前vue打包好的dist复制进去,还有nginx配置。

2、编写nginx配置

主要的就是替换nginx的default.conf

server {
    listen       80;
    server_name  localhost;
    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
  
    error_page   500 502 503 504  /50x.html;
    #location = /50x.html {
    #   root   /usr/share/nginx/html;
   # }
    location /api/ {  # 匹配api接口,进行转发配置
        rewrite  /api/(.*)  /$1  break;
        proxy_pass http://45.647.88.99:8000;  #这是重点,转发到你的后端接口
    }

}

3、编写dockerfile

# 设置基础镜像
FROM nginx
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/
#用本地的 default.conf 配置来替换nginx镜像里的默认配置
COPY nginx/default.conf /etc/nginx/conf.d/default.conf

4、本项目本件夹

图片.png

default.conf在nginx中

5、制作镜像

docker build -t test:2 .

6、启动镜像

docker run --name=test3 -p 9002:80 -d test:2

小结:

我个人遇到的问题就是跨域请求的转发问题,后来才找到nginx还可以这样高。这里只是简单的写了下。工作开大可能还需要改动。比如nginx镜像最好是只用挂载的方式进行启动,这样的话对于nginx/defaulu.conf的配置更新还是比较方便的。

上一篇下一篇

猜你喜欢

热点阅读