nuxt + nginx 前后端不同服务器代理配置

服务器说明:
服务器A:域名www.aaa.com,部署nuxt代码【端口3000】和nginx代理【端口80】
服务器B:域名www.bbb.com,部署后端接口代码(java、.net等后端程序实现)【端口80】

  1. nuxt中,对axios插件的自定义扩展配置【文件plugins/axios.js】,需要增加node服务端请求设置,config.headers.host = req.headers.host,这样发送到服务器时,请求的域名可以是原始域名

样例代码 plugins/axios.js

/**
 * @param {import('@nuxt/vue-app').Context} ctx
 */
export default function(ctx) {
  const { $axios, req, redirect, route } = ctx

  /**
   * 发送前拦截
   */
  $axios.onRequest(config => {
    if (process.client) {
      // 浏览器执行的客户端代码
    }
    if (process.server) {
      // node执行的服务端代码
      // node服务端做host穿透-重点在这里哟
      config.headers.host = req.headers.host
    }
  })
  /**
   * 返回结果拦截
   */
  $axios.onResponse(response => {
    // 可以添加处理代码

    // 或者不处理直接返回response
    return response
  })

  /**
   * 错误拦截
   */
  $axios.onError(error => {
    const code = parseInt(error.response && error.response.status)
    if (code === 404) {
      // 404错误处理
    }
  })
}
  1. nginx部署在运行前端代码的服务器,nuxt框架优势在于可以直接使用SSR,支持node服务端渲染,所以nuxt的运行环境是node。
    nginx下没有任何的执行代码,只用来做代理,根目录默认代理nuxt的3000端口,nuxt访问后端接口的前缀是api,nginx代理配置代码样例如下:
#上游模块接口-前端地址
upstream project_vue {                                                         
  server www.aaa.com:3000;                                                
  keepalive 2000;
}
#上游模块接口-后端地址
upstream project_java {                                                         
  server www.bbb.com;                                                
  keepalive 2000;
}

#nginx请求映射的代理配置
server {
  listen       80;
  server_name  www.aaa.com;
  #charset koi8-r;

  #access_log  logs/host.access.log  main;

  #后端接口代理,目录层级越多的代理,需要放在前边
  location /api/ {
    #文本替换修正uri,看需要启用,我这里接口也是api开头,所以没有启用替换
    #rewrite ^/api/(.*) /$1 break;
    #代理地址
    proxy_pass http://project_java;
    #域名穿透,可以将原始的请求域名,放在请求中发给接口,当前例子中,www.bbb.com收到的请求域名是www.aaa.com
    proxy_set_header Host $host:$server_port;
    #root   html;
    #index  index.html index.htm;
  }
  #前端代理,目录层级越少的代理,需要放在后边
  location / {
    proxy_pass http://project_vue/;
    proxy_set_header Host $host:$server_port;
  }
}

感觉写的挺乱,先这样吧,以后再整理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,544评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,430评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,764评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,193评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,216评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,182评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,063评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,917评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,329评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,543评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,722评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,425评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,019评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,671评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,825评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,729评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,614评论 2 353