nuxt.js部署和nginx反向代理配置


需求:

Ngxin上已配置app目錄指向ProxyService:8900(NodeJS反向代理服務器)。

1、需要將nuxt.js服務部署到www.abc.com/app/draw

2、需要將strapi服務作為nuxt應用的api服務部署到www.abc.com/app/draw_api。

 

具體實現:

一、NGINX配置ngxin.conf

server {
  
  # index.html
  location / {
    ...
  }
  # app上下文反向代理8900端口(代理服務器)
  location /app/ {
    proxy_pass http://127.0.0.1:8900;
    include proxy.conf;
  }
}

proxy.conf
--------------------------
proxy_http_version  1.1;
proxy_cache_bypass  $http_upgrade;
proxy_set_header Upgrade      $http_upgrade;
proxy_set_header Connection     "upgrade";
proxy_set_header Host       $host;
proxy_set_header X-Real-IP      $remote_addr;
proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto  $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;

  

第二步:NodeJS代理服務器,使用http-proxy-middleware模塊實現把/app/draw/代理到Nuxt服務端口3000

// proxyServer.js
const zProxy = proxy({
  target: 'http://localhost:3000',
  changeOrigin: true,
   pathRewrite: {
     '^/draw/': '/draw/'  // 如果nuxt.conifg.js中的router.base不配置這里應該是 '/draw/': '',關鍵就是代理目錄要跟實際請求要對應上
   }
})
// strapi服務
const zApiProxy = proxy({
  target: 'http://localhost:1337',
  changeOrigin: true
  pathRewrite: {
    '^/app/draw-api/': ''  # 使用 abc.com/app/draw-api/ 映射  localhost:3000
 }
})

const app = express()

app.get('/', function(req, res) {
  res.send('Welcome to the proxy service.')
})

app.use('/draw/', zProxy)
app.use('/draw-api', zApiProxy)

  

 

第三:Nuxt配置

關鍵是router.base行

Nuxt.config.js 
--------------
  server: {
    port: 3000,
    host: 'localhost'
  },
  mode: 'universal',
  router: {
    base: '/draw/'
  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM