模擬部署一個前后端分離的項目


模擬部署一個前后端分離的項目

前期准備:安裝好兩個虛擬機並配置好maven環境、nginx環境、java環境、sql和tomcat環境,分別用來部署前端和后端,這里我用的是centos,其中centos001(192.168.2.45)部署后端。centos002(192.168.2.115)部署前端。再去找一個前后端分離的項目,這里我的項目前端采用vue框架,后端采用springboot框架。

根據實際情況修改前后端項目的配置文件

前端:

修改conf文件夾內的env.config.js

prod: {

    BASE_URL: '"http://192.168.2.45:8080/sys"',            //后端接口的地址
    STATIC_BASE_URL: '"http://192.168.2.45:8080"',
    FILE_UPLOAD_URL: '"http://192.168.2.45:8080/sys"'
  },

修改src文件夾下utils文件夾下myhttpserver.js

axios.defaults.baseURL = 'http://192.168.2.115/sys'        //前端地址

修改static文件夾下config文件夾下index-prod.js

// api接口請求地址
  window.SITE_CONFIG['baseUrl'] = 'http://192.168.2.115'

后端:

修改resources文件夾內application-prod.yml數據庫的配置,根據自己的實際情況來。我的數據庫是在centos001這台虛擬機上,並運行在3306端口

spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.jdbc.Driver
        druid:
            first:  #數據源1
                url: jdbc:mysql://192.168.2.45:3306/papertest?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
                username: root
                password: Zzq960916
            second:  #數據源2
                url: jdbc:mysql://192.168.2.45:3306/papertest?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8
                username: root
                password: Zzq960916

修改同級文件夾下的application.yml,指定自己的運行環境,我這里是prod

上傳前端/后端源文件至各自需要部署的虛擬機上進行打包部署

將整個后端文件夾上傳到centos001的/home/zzq/workspace/下,前端文件夾上傳到centos002的/home/zzq/workspace/下(位置可以自己選擇)

前端:推薦安裝yarn進行依賴管理

cd到相應的位置

cd /home/zzq/workspace/management/

安裝依賴

yarn install

查看可以運行的腳本

yarn run

可以看到我這個項目的build命令,鍵入即可。

等待build完成后再management文件夾下會自動生成一個dist文件夾,這個dist文件夾就是打包后的結果。將dist文件夾復制一份,備份出來,我是把它放在/root/html/management/下。

最后修改nginx的配置文件,我的位置是/usr/local/nginx/conf/新增server代碼塊內容如下

server {
        listen       80;
        server_name  nginx;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

		#前端打包位置
        location / {
            root   /root/html/dist/;                      
	    try_files	$uri $uri/ /index.html;
            index  index.html index.htm;
        }
		#處理跨域問題。將所有的帶有sys的請求都轉發到指定的地址上
        location ^~ /sys/{
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://192.168.2.45:8080/sys/;

        }

cd到nginx的sbin目錄下,啟動nginx服務。

./nainx

這個時候前端項目就已經部署完畢了,我們可以去瀏覽器訪問看看

但是這個時候還不能進行登錄等操作,因為后端還沒有啟動起來。

后端:

同樣,來到centos001,cd到后端文件夾的位置,我的是/home/zzq/workspace/paper-testing/

執行命令

mvn package

稍等片刻后可以看到在paper-testing文件夾下出現了一個同名的war包

將該war包備份一份,然后將war包放到tomcat目錄下的webapps下,我的是/usr/local/tomcat/webapps/,最后啟動tomcat服務

service tomcat start

就可以了。但是這個時候有人可能就發現了,此時去瀏覽器訪問比如我的是192.168.2.45:8080,訪問到的是tomcat的首頁,必須得在后邊加個192.168.2.45:8080/paper-testing才能訪問到,其實這個情況我們只需要將這個訪問路徑改成根目錄就行了,cd到tomcat的conf文件夾

cd /usr/local/tomcat/conf

修改該目錄下的server.xml,內容如下:

<Host name="localhost"  appBase="webapps"
	      unpackWARs="true" autoDeploy="true">

	      <Context path='/' docBase="/usr/local/tomcat/webapps/paper-testing" reloadable="false"></Context>

保存,重啟tomcat即可。

最后我們去瀏覽器訪問前端,這個時候就能夠進行登錄等一系列操作了,整個項目的部署也就完成了


免責聲明!

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



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