中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue項目部署的實現(阿里云+Nginx代理+PM2)

發布時間:2020-09-06 16:14:29 來源:腳本之家 閱讀:257 作者:Clearlove 欄目:web開發

最近部署一個Vue項目到阿里云ECS上,因為項目涉及一些跨域請求,所以采用了Nginx代理請求本地的node服務(利用pm2做進程管理)。node服務借助axios設置headersrefererhost轉發請求,解決跨域請求問題。

先交代下在阿里云ECS里安裝的部署環境:phpstudy(php調試運行大禮包,里面包含nginx、mysql等,還能監控端口占用情況)、pm2(node服務進程管理工具)、nodegit等等。

部署過程

  1. 拉去GitHub項目代碼至root目錄下(找到安裝phpstudy的WWW目錄),構建項目
  2. 修改nginx-conf的代理配置、root項配置(指向項目項目的dist目錄下)
  3. 啟動pm2(項目中,事先已寫好服務端邏輯prod.server.js)
  4. 啟動phpstudy
  5. 訪問項目

構建項目

構建項目前,要修改項目confing目錄下的index.js,主要是build部分的端口、目錄,具體如下:

build: {
  port: 9001, // 因為我是用PHPStudy做web服務器的,此時php.cgi會占9000端口,所以改用9001
  // Template for index.html
  index: path.resolve(__dirname, '../dist/index.html'),

  // Paths
  assetsRoot: path.resolve(__dirname, '../dist'),
  assetsSubDirectory: 'static',
  assetsPublicPath: '',
  .......
}

主要有兩部分

修改端口,跟代理端口一致

port: 9001

修改assetsPublicPath

assetsPublicPath: ''

nginx-conf配置

利用phpstudy,可以很方便的進行nginx相關設置、host修改、端口監控等等。先來說說nginx-conf的配置。

先找到nginx-conf配置入口

Vue項目部署的實現(阿里云+Nginx代理+PM2)

修改ngin-conf

upstream my_project {
 server 127.0.0.1:9001;
 keepalive 64;
}

server {
 listen    80;
 server_name my_project;

 #charset koi8-r;

 #access_log logs/host.access.log main;
 root  "C:/phpStudy/PHPTutorial/WWW/project/dist";

 location / {
  index index.php index.html index.htm; 
  
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header Host $http_host;
  proxy_set_header X-NginX-Proxy true;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_max_temp_file_size 0;
  proxy_pass http://my_project/;
  proxy_redirect off;
  proxy_read_timeout 240s; 
   
 }
}

注意事項

root配置,指向構建后目錄

root "C:/phpStudy/PHPTutorial/WWW/project/dist";

設置代理端口時,避免端口占用!!

upstream my_project {
 server 127.0.0.1:9001;
 keepalive 64;
}

開始部署時,使用的是9000端口,一直運行不起來,后面發現phpstudy啟動是php-cgi.exe默認就使用了9000端口。關于端口使用情況,phpstudy也提供了工具。

Vue項目部署的實現(阿里云+Nginx代理+PM2)

啟動pm2

關于pm2的介紹、常規使用自行了解。在項目目錄下事先已經寫好了轉發請求的邏輯。

pro.server.js

var axios = require('axios')
const bodyParser = require('body-parser')
var config = require('./config/index')
var express = require('express')

var app = express()
var apiRoutes = express.Router()

apiRoutes.get('/api/getdata', function(req, res) {
 var url = 'https://a.com'
 axios.get(url, {
  headers: {
   referer: 'https://b.com',
   host: 'b.com'
  },
  params: req.query
 }).then((response) => {
  ....
 }).catch((e) => {
  console.log(e)
 })
})


app.use('/', apiRoutes)

app.use(express.static('./dist'))

var port = process.env.PORT || config.build.port

module.exports = app.listen(port, function (err) {
 if (err) {
  console.log(err)
  return
 }
 console.log('Listening at http://localhost:' + port + '\n')
})

這里只是簡單的借助axios可以設置refererhost,實現代理轉發的功能。

運行prod.server.js

prod.server.js是在根目錄下,所以運行命令如下:

pm2 start prod.server.js

Vue項目部署的實現(阿里云+Nginx代理+PM2)

進程列表:

pm2 start list

Vue項目部署的實現(阿里云+Nginx代理+PM2)

查看進程詳情

pm2 show 0

Vue項目部署的實現(阿里云+Nginx代理+PM2)

總結

整個部署過程涉及比較多的知識點,nginx代理node開發部署端口管理等等。在端口占用這個點上卡了一段時間。不過目前只是實現構建部署、訪問。但維護成本還是比較高,先得從GitHub拉取代碼,本地構建。項目完成以后,研究下持續性集成流程。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延津县| 临湘市| 石城县| 咸阳市| 丰都县| 新竹县| 文山县| 旌德县| 巩留县| 洪洞县| 通化县| 晋中市| 大石桥市| 洛阳市| 昆明市| 张掖市| 泽普县| 射洪县| 竹溪县| 玉环县| 嘉定区| 承德县| 兴文县| 铁力市| 敦煌市| 瑞安市| 钦州市| 西乌珠穆沁旗| 洛浦县| 柳河县| 沂源县| 通州区| 南漳县| 溆浦县| 三穗县| 贵德县| 台中县| 广河县| 彭阳县| 福贡县| 札达县|