Vue——利用开发环境ngnix整合springboot (五)

  • Post author:
  • Post category:vue


创建springboot

这块就不多说了,用了简单的数据模拟了下

@CrossOrigin
@ResponseBody
@RequestMapping(value = "/test")
public JSONObject test1(){
    JSONArray jsonArray = new JSONArray();
    List<Integer> list = new ArrayList<>();
    for(int i = 0 ; i <= 20 ; i++){
        Random random = new Random();
        list.add(random.nextInt(200-0)+0);
    }

    JSONObject jsonObject = new JSONObject();
    jsonObject.put("cycislj",list);

    return jsonObject;
}

VUE

主要是vue的部分今天被跨域搞死一直不能弄,最后选择用昨天配好的ngnix,文章最后会去介绍

vue2自带解决跨域的方法可能是我菜吧一直也不行,最后整合了下也还可以用


先是安装axios

npm install axios –save


在main.js里面导入


import axios from ‘axios’

Vue.prototype.axios = axios  //好像是因为axios不支持Vue.use 所以注册为全局来用


配置proxyTable

conf->index.js->dev->proxyTable

配置了如下

proxyTable: {
  '/': {
    target: 'http://localhost:8088/api/',//这个是我ngnix访问的链接,具体也可以替换成自己的
    changeOrigin: true,
    pathRewrite: {
      '^/': ''//这个我的理解就是可以把/替换成http://localhost:8088/api/ 之后我访问的时候是直接/test即可了 为什么多加这个就是在同一个项目下各个接口访问起来方便点
    }
  },


最后是访问了

this.axios({
  method: 'get',
  url:'/test'
})
  .then((response)=>{
    let a = response.data.cycislj;
    for(let i = 0;i<a.length;i++){
      console.log(a[i]);
    }
  })
  .catch((error)=>{
    console.log(error)
  })

Ngnix配置

nginx配置就比较简单了 我现在用的是简单的层次,只是做个转发其他我就不说了

复制一段网上做的笔记 具体是哪里复制了我也忘记了 侵删

########### 每个指令必须有分号结束。#################

#user administrator administrators;  #配置用户或者组,默认为nobody nobody。

#worker_processes 2;  #允许生成的进程数,默认为1

#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址

error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg

events {


accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on

multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off

#use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport

worker_connections  1024;    #最大连接数,默认为512

}

http {


include       mime.types;   #文件扩展名与文件类型映射表

default_type  application/octet-stream; #默认文件类型,默认为text/plain

#access_log off; #取消服务日志

log_format myFormat ‘$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for’; #自定义格式

access_log log/access.log myFormat;  #combined为日志格式的默认值

sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。

sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。

keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

upstream mysvr {

server 127.0.0.1:7878;

server 192.168.10.121:3333 backup;  #热备

}

error_page 404 https://www.baidu.com; #错误页

server {


keepalive_requests 120; #单连接请求上限次数。

listen       4545;   #监听端口

server_name  127.0.0.1;   #监听地址

location  ~*^.+$ {       #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。

#root path;  #根目录

#index vv.txt;  #设置默认页

proxy_pass  http://mysvr;  #请求转向mysvr 定义的服务器列表

deny 127.0.0.1;  #拒绝的ip

allow 172.18.5.54; #允许的ip

}

}

}

主要配置就是

conf目录下的ngnix.conf

#添加拦截路径和代理地址

listen       8088;

server {


listen       8088;

server_name  localhost;

location /api/ {


proxy_pass http://localhost:8282/;  #访问到的我springboot

}

差不多就这些了


这里注释下一些东西:


想改server_name 但是一直没有成功一直都是localhost本地


也试过对应hosts文件了 但也是没有什么用 今天就不弄了 弄成功了再填坑 大哥们有知道 谢谢大哥们能够评论下方法


看网上的hosts文件目录和我都不太一样 不过搜到的只有 C:\Windows\WinSxS\amd64_microsoft-windows-w..ucture-other-minwin_31bf3856ad364e35_10.0.16299.15_none_582bc968d636655c 这个目录下的 还有一堆权限问题 具体思路就是把他的父文件夹改了下权限 然后弄下就好了



版权声明:本文为qq_40632760原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。