docker+nginx+vue(發布vue項目)


1、在centos服務器上使用docker下載nginx鏡像

  這個簡單得很就不廢話了

2、打包vue項目,npm run build 命令,會打包出一個dist文件夾,文件夾是不能直接上傳到服務器上的,所以我是把dist文件夾壓縮成zip格式的壓縮包然后再上傳到服務器

 

 

我把dist.zip壓縮包放在了服務器的/home/vue-project/nginx/  目錄下:這個是解壓之后的

(centos解壓zip命令: unzip dist.zip            如果系統提示沒有unizp這個命令,那么就安裝一下:yum install unzip   )

 

 

 

3、然后在/home/vue-project/nginx 這個目錄下要創建兩個文件分別是:nginx的配置文件default.conf 和 docker用來生成鏡像的文件dockerfile

  3.1 default.conf配置文件內容如下:(有#號注釋的地方都是要改成自己的,其他的不動。吐槽下,百度出來別人博客上的nginx配置他媽的一大堆配置,簡單點不好嗎真的是)

server {
    listen       80;
    server_name  xx.xx.xx.xx;  #服務器的ip

    location / {
        root   /home/vue-project/nginx;   #打包的dist文件夾存放路徑
        index  index.html index.htm;
        try_files $uri $uri/ /index.html =404;
    }

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

 

  3.2然后是docker的構建文件:dockerfile   (這個文件就是沒有后綴的,直接vi dockerfile創建出來)

    根據自己的目錄來配置,就簡單的幾行代碼

FROM nginx

MAINTAINER myname_z

RUN rm /etc/nginx/conf.d/default.conf

ADD default.conf /etc/nginx/conf.d/

COPY dist/ /home/vue-project/nginx/

  

4、現在所有的配置都弄好了,使用命令來構建docker鏡像:

//nginx-test名稱后面有個.要注意
docker build -t nginx-test .

  創建成功后,查看docker鏡像:docker images,會發現有個名叫nginx-test的鏡像,沒有就是沒成功,成功如下:

 

 

 5、最后創建此鏡像的容器啟動運行:

docker run --name nginx-docker -p 80:80 -d nginx-test

  查看運行的容器:docker ps

 

 

 

  打開瀏覽器訪問服務器地址成功如下:

 

 

 

 

 

2020年12月4日==================================================

前端vue項目是發布成功了,但是訪問不到發布的后端地址

1、登錄請求,報了第一個錯:405 not allowed

  百度一下:這個是nginx的問題說什么所有靜態資源請求只能用get請求

 

  解決如下:(新測有效) 把他的405錯誤返回全轉成200狀態

 

 

 

2、405問題是解決了,但出出了一個問題,點擊登錄,怎么也請求不到后端。我用postman發送post登錄接口地址請求,服務器是有響應的

  登錄請求是返回了200,但沒有返回任何response結果,在服務器使用:docker logs --tail 300 -f jz-project  命令查看我的后端項目日志,沒有任何請求進來,沒有任何日志打印

 

  那么問題來了,很明顯請求根本沒有進入后端項目

 

  接口地址請求沒有進入后端項目,后端項目又是正常的沒毛病,那肯定就是地址問題,記得我在vue項目里配置了axios的代理不知道有什么關系。百度了幾個小時之后終於找到解決辦法,感覺像是這么解決的就試了試,沒想到成功了。

 

  解決辦法如下:

    2.1   在nginx配置文件里配置代理就行了:因為我在vue項目里配置了axios代理,所有請求都是http://localhost:8080/api/xxx/xxx,在這個nginx配置文件里配置一個location{},目的是把所有請求地址:/api前面這段地址給換成:http://服務器ip:8080/jz-project      后端項目所在的服務器地址

 

 

 

 

 

 

   最后就成功登錄進去了:=================上圖

 

 

 

 

 

 

。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM