node.js - Nuxt 6.14.6 redirect-ssl 模块无法在 AWS 中运行
问题描述
我正在尝试将 redirect-ssl 节点模块配置到 nuxt 应用程序中
参考:https ://www.npmjs.com/package/redirect-ssl
但是当我在浏览器中加载站点时,它会给我消息错误->无法获取/
引用。https://prnt.sc/xqsc05
站点在没有重定向模块的情况下使用 SSL。但我想强制将所有非 HTTP 请求重定向到 HTTPS。我尝试了 .htaccess 代码,但我认为 nuxt 不支持它。
终端没有错误。
尝试按照以下不同方式进入 nuxt.config.js。
serverMiddleware: ["redirect-ssl"],
在 server/index.js 文件中添加以下代码
const redirectSSL = require('redirect-ssl')
async function start () {
.
.
app.use(redirectSSL)
}
我们如何使用 .htaccess 文件进入 nuxt。我尝试放入 root 或 nuxt 项目设置,但这对我不起作用。
除了 build:publicPath 变量之外,任何人都知道如何将 CDN 实现到 nuxt 中。
请对使用 htaccess 的 redirect-ssl 模块或 nuxt 有任何帮助或建议吗?
解决方案
试试下面的方法。
进入 server/index.js
const redirectSSL = require('redirect-ssl');
const fs = require("fs");
const path = require("path");
const https = require('https');
const express = require('express');
const consola = require('consola');
const { Nuxt, Builder } = require('nuxt');
const app = express()
const pkey = fs.readFileSync(path.resolve(__dirname, 'domain_ssl.com.key'));
const pcert = fs.readFileSync(path.resolve(__dirname, 'domain_ssl.com.crt'));
const httpsOptions = {
key: pkey,
cert: pcert
};
// Import and Set Nuxt.js options
const config = require('../nuxt.config.js')
config.dev = false
async function start () {
// Init Nuxt.js
const nuxt = new Nuxt(config)
const { host, port } = nuxt.options.server
await nuxt.ready()
// Build only in dev mode
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
}
// nuxt render and middleware
app.use(nuxt.render)
app.use(redirectSSL.create({ redirectPort: 443 }))
// Listen the server
app.listen(port, host)
consola.ready({
message: `Server listening on http://${host}:${port}`,
badge: true
})
https.createServer(httpsOptions,app).listen(443, host)
consola.ready({
message: `Server listening on https://${host}:${port}`,
badge: true
})
}
start()
以上一个用于强制 SSL 重定向。对于 CDN,请使用此步骤。 https://nuxtjs.org/docs/2.x/configuration-glossary/configuration-build
推荐阅读
- java - 在现实生活中,你什么时候会使用堆栈而不是常规链表或常规队列而不是优先级队列?
- python - 列的加权移动平均线
- python - 为什么这个答案中有一个 en ?
- google-compute-engine - Google Compute Engine (GCE VPC) 上的 Samba 共享
- ios - 在 Swift 中保存和存储数据
- spring - 具有原型范围的 AbstractTestNGSpringContextTests
- org-mode - org-mode 源代码编辑在退出源代码块编辑器后缩进代码
- node.js - 使用来自 POST HTTP 请求的回调函数后保存 JSON 对象
- mysql - MySql,在两个不同的小时内按时间选择第一条和最后一条记录
- javascript - 为什么我的模态在后台打开?