Nginx实战教程二

一.介绍

本文介绍SPRINGBOOT+VUE项目配置API服务器的两种情况 + NGINX 配置VUE项目

二.vue项目和后端api接口不在同一台服务器

如果打包好的vue项目应用(dist) 和后端 api 接口没有运行在同一个主机上

  • 此时需要在开发环境下将 API 请求代理到 API 所在服务器。通过配置 vue.config.js 中的 devServer.proxy
devServer: {
  port: 13888, // 生产环境前端启动端口
  proxy: {
    '/api': {
      target: 'http://xxx.xxx.x.xxx:13889', // 后端服务器地址
      ws: true, // proxy websockets
      changOrigin: true, // 是否允许跨域
      pathRewrite: { // 重定向
        "^/api": ""
      }
    }
  }
}
  • 在生产环境中可通过NGINX配置代理服务器解决vue项目请求跨域问题
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       13888;
        server_name  http://129.129.16.40; # 前端项目部署服务器地址

        location / {
            root   html;
            index  index.html index.htm;
        }
		
		# 后端api接口反向代理地址
        location /api/ {
            proxy_pass http://10.8.1.152:13889/;
        }

		# 前端
		location /diagnosis {
			alias D:/nginx/web/sod/h5/; #vue项目打包完生成的dist
			try_files $uri $uri/ $uri/index.html $uri.html /index.html; # 解决前端的路由问题
			# 允许跨域请求的来源,可以使用通配符或具体域名
			add_header 'Access-Control-Allow-Origin' '*';
			add_header 'Access-Control-Allow_Credentials' 'true';
			add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
			add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
		}
    }
}

三.vue项目和后端api接口同再一台服务器(重点)

如果打包好的前端应用(dist) 和后端 API 服务器运行在同一个主机上,但是只有一个端口做了内网映射

  • 前端网络请求地址
fetchData() {
	// 发送请求获取后端接口数据
	uni.request({
		url: 'http://139.126.16.40:13888/api/drugstore/getScore',
		method: 'GET',
		header: {
			token: token
		},
		data: {
			storeCode: drugStoreCode
		},
		success: (res) => {
			this.totalScore = res.data.data.physicalExaminationScore
		}
	})
}
  • nginx配置
worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       13888;
        server_name  http://139.126.16.40; # 公网地址

        location / {
            root   html;
            index  index.html index.htm;
        }
		
		# 后端api接口反向代理地址
        location /api/ {
            proxy_pass http://10.8.1.152:13889/; # 内网地址
        }

		# 前端
		location /diagnosis {
			alias D:/nginx/web/sod/h5/; #vue项目打包完生成的dist
			try_files $uri $uri/ $uri/index.html $uri.html /index.html; # 解决前端的路由问题
			# 允许跨域请求的来源,可以使用通配符或具体域名
			add_header 'Access-Control-Allow-Origin' '*';
			add_header 'Access-Control-Allow_Credentials' 'true';
			add_header 'Access-Control-Allow-Headers' 'Authorization,Accept,Origin,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
			add_header 'Access-Control-Allow-Methods' 'GET,POST,OPTIONS,PUT,DELETE,PATCH';
		}
    }
}
  • 测试一(先用内网地址测试后端接口是否调通)

在这里插入图片描述

  • 测试二(再用公网地址测试反向代理是否成功)
    在这里插入图片描述

注意:同时服务器要配置端口入站和出站规则(简单的说 出站就是你访问外网 入站就是外网访问你)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小钟不想敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值