參考鏈接
nodejs服務器部署教程二,把vue項目部署到線上
打包
#在本地使用以下命令,打包
npm run build
#打包之后本地會出現dist文件夾。將dist文件夾以及package.json 文件上傳到centos服務器上,此處隨便什么位置,新建個文件夾就能放。
啟動項目
新建一個app.js文件,文件內容如下
//定義目錄
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();
//vue目錄
app.use(express.static(path.resolve(__dirname, './dist')))
app.get('*', function(req, res) {
const html = fs.readFileSync(path.resolve(__dirname, './dist/index.html'), 'utf-8')
res.send(html)
})
//定義啟動的端口號
app.listen(8082);
運行如下命令:
#安裝依賴包,如果系統中沒有安裝node,npm命令會找不到
npm install
#啟動vue項目(pm2命令也需要單獨安裝,安裝之后再執行下面命令)
pm2 start app.js
執行上面操作之后,訪問127.0.0.1:8082就可以了,根據自己設置的端口訪問。如果想從外網訪問,則需要知道自己的ip,ip:port的方式就可以從外網訪問。
使用Nginx代理,使用域名訪問
Nginx配置文件(/etc/nginx/nginx.conf)
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
#以上配置均是默認值未曾修改,如果想搞懂上面的是什么意思,自己去慢慢學習吧
#這個配置是負載均衡使用的
#此處的app_nodejs是負載均衡的名字
upstream app_nodejs {
#訪問的實際地址是下面的,可以有多個,多個時就達到了負載均衡的作用,后面其實還有一個參數,但是此處寫不寫無區別。
server 127.0.0.1:8082;
keepalive 64;
}
server {
#監聽的是80端口,不建議換成其他端口,因為換成其他端口后,你訪問時,域名也得加上加上端口,比如端口號改成8080,訪問時則是:onloading.cn:8080
listen 80 default;
#訪問的域名
server_name onloading.cn;
#如果訪問的是ip,則直接返回404,此處只允許通過域名訪問
if ($host ~ "\d+\.\d+\.\d+\.\d") {
return 404;
}
location / {
proxy_set_header X-Real-IP $remote_addr;
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_set_header Connection "";
#指定使用哪個負載均衡,其他location的值均屬於默認值
proxy_pass http://app_nodejs;
proxy_redirect off;
}
}
}
配置完之后,使用onloading.cn邊可以訪問你的項目了。