nodejs搭建接口转发服务,nginx代理

运行环境ubuntu18.04 服务器环境装了lxd,起一个container环境,随便搞,崩了也不要紧,不喜欢删掉重起
后端使用java架构,提供基本接口服务,前端使用vue,node用来做中间层进行接口的整合处理工作,用nginx
处理静态资源服务,代理node接口服务,这样解决了跨域问题

1、nginx下载 sudo apt-get install nginx
2、启动nginx sudo /etc/init.d/nginx start
3、关闭nginx sudo /etc/init.d/nginx stop
4、重启nginx sudo /etc/init.d/nginx restart
5、查看nginx配置文件所在
sudo nginx -t
6、修改配置文件 vi /etc/nginx/sites-available/default
不懂vi的自行百度
在server 处添加以下代码

location ^~ /api/ {

       proxy_set_header X-Real-IP $remote_addr;

       proxy_set_header Host $http_host;

       proxy_pass http://192.168.0.80:3000/users/api;
}

nodejs搭建接口转发服务,nginx代理_第1张图片
以上代码代表 对80端口进行监控 开头对URL路径进行前缀匹配 匹配成功转发到 http://192.168.0.80:3000/users/api
来个栗子:
前端请求

axios.post('/api/adduser')
    .then(function(res){
        console.log(res)
    })
    .catch(function(err){
        console.log(err)
    })

浏览器就通过默认端口发起请求 http://192.168.0.80/api/adduser
nginx监听默认端口80,并进行匹配http://192.168.0.80/api/,
ojbk匹配到了就转发,这部分http://192.168.0.80/api/就变成 http://192.168.0.80:3000/users/api/
最后变成 http://192.168.0.80:3000/users/api/adduser;
重启nginx

在node端响应接口

node端用express
…….
…..
以上环境搭好了,用express-generator生成项目结构
app.js 中间件拦截匹配/users 走userRouter
nodejs搭建接口转发服务,nginx代理_第2张图片

users.js
nodejs搭建接口转发服务,nginx代理_第3张图片

重启node
测试是否代理成功
用eoliner进行测试 当然也可以前端自己请求测试 前端成功返回数据
nodejs搭建接口转发服务,nginx代理_第4张图片

第一次写博客,很简单的东西,当是记录,后续继续完善

你可能感兴趣的:(nginx)