4

项目:
https://github.com/itguide/vn...

安装环境:

nginx
node
mongodb

把代码上传到服务器

1.rz 上传
2.使用github克隆

把依赖包下载

cd /home/wwwroot/vnshop/client

npm i

cd /home/wwwroot/vnshop/server
npm i

编译客户端代码

cd /home/wwwroot/vnshop/client
npm run build

添加虚拟主机,绑定域名,并且把域名访问的路径指定到 /home/wwwroot/vnshop/client/src/dist

启动server api服务

cd /home/wwwroot/vnshop/server
npm start
或者
node ./bin/www

测试api
域名:3000/url

配置反向代理

vim /usr/local/nginx/conf/vhost/vnshop.shudong.wang.conf

location /api/ {
   proxy_pass http://127.0.0.1:3000/; # 当访问v1的时候默认转发到 3000端口
}

更改nginx配置之后要重启nginx服务
service nginx reload


原理 每次访问这个url 匹配到 /api/
http://vn.shudong.wang/api/go...

http://vn.shudong.wang/api/ -> http://127.0.0.1:3000/

http://127.0.0.1:3000/goods/list?sort=1&priceLevel=all&page=1&pagesize=8

如果没有做反向代理,直接访问
http://vn.shudong.wang/api/go...
会发生404 not found

详细配置请看
https://segmentfault.com/a/11...

3000端口不能访问

检查 3000 端口是否启动
检查方法

netstat -anp | grep 3000

检查结果

如果什么也没有输出
3000端口没有启动

如果3000端口启动了,还是不能访问
如果是阿里云的话,检查安全组策略

跨域

查看控制台请求的api,域名是否和你的保持一致

如果不一致,你复制我的代码,请去
vnshop/client/config/api.config.js

把里面的域名改成你的

记住一定要 编译
npm run build

然后再访问看请求的api 是否是和你访问的域名保持一致

就是浏览器输入的域名 和你 请求的api域名是一样的

如果改成一样了后,会发生404 说明了,没有这个api,这时候,需要你配置反向代理

mongodb 客户端不能连接远程数据库

查看数据库的端口是否启动
如果你的数据库端口是27017

netstat -anp | grep 27017


上面重点花圈的ip绑定 如果是 0 0.0.0.0:27017 四个0 有这个绑定就可以任意一个远程或本地连接
如果这是127.0.0.1 只能内网连接,不能远程连接

如果没有启动

service mongod  start

启动后,一定要检查是否启动成功

然后测试是否启动成功

netstat -anp | grep 27017

使用mongo 输入

mongo

可以进入 mongo shell ,说明服务器上的mongodb 可以使用

检查是否开启远程

3000端口被占用

如果是pm2启动的话 杀不掉 ,kill 掉后,就会自动开启一个进程
使用

pm2 status
pm2 stop name

西树先森
7.1k 声望926 粉丝

从事开发多年,前端、后端(go、Python、php)、服务架构都有涉猎,经历过大公司、创业公司,擅长前端及公司技术选型。