Последние несколько недель я стучал головой по столу, пытаясь понять это. Мне нужно немного, пожалуйста!
У меня есть домашний сервер, работающий Apache 2.4.41 на Ubuntu 18.04, чтобы я запускал Nuxt SSR Приложение, запускаемое через прокси и сделать его общедоступным через безопасный SSL. Судя по всему, SSL, кажется, установлен правильно, однако при посещении домашнего URL я получаю следующую ошибку:
Прокси-сервер получил неверный ответ от вышестоящего сервера. Ошибка чтения с удаленного сервера
Конфигурация виртуального хоста
#Normal HTTP
<VirtualHost *:80>
ServerName example.com
# Redirect any HTTP request to HTTPS
Redirect / https://example.com/
ProxyRequests Off
ProxyPass / http://example.com:3102/ retry=1 acquire=3000 timeout=2200 Keepalive=On
ProxyPassReverse / http://example.com:3102/
</VirtualHost>
#Secure HTTPS Config
<VirtualHost *:443>
ServerName www.example.com
ProxyRequests off
ProxyPass /.well-known/ !
<Location />
ProxyPass http://localhost:3102/
ProxyPassReverse http://localhost:3102/
ProxyPreserveHost On
</Location>
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLEngine on
SSLCertificateKeyFile /etc/apache2/ssl/private/example.com.key
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateChainFile /etc/apache2/ssl/example.com.ca-bundle
</VirtualHost>
Сценарий на стороне сервера
const consola = require('consola')
const session = require('express-session');
const fs = require('fs');
const http = require('http');
const https = require('https');
const { Nuxt, Builder } = require('nuxt')
async function start() {
const logger = require("./api/base/logger")
// Import and Set Nuxt.js options
let nuxt_config = require('../nuxt.config.js')
const express = require('express')
const bodyParser = require('body-parser')
const session = require('express-session')
nuxt_config.dev = !(process.env.NODE_ENV === 'production')
process.env.is_dev = !(process.env.NODE_ENV === 'production');
// Init Nuxt.js
consola.info("\tNuxt Engine Started");
const nuxt = new Nuxt(nuxt_config)
let { host, port } = nuxt.options.server
try {
// Build only in dev mode
if (nuxt_config.dev) {
port = nuxt.options.server.dev_port;
consola.info("[--- Dev Mode ( " + port + " ) ---]");
const builder = new Builder(nuxt)
await builder.build()
} else {
port = nuxt.options.server.prod_port;
consola.info("[ Prod Mode ( " + port + " ) ]");
await nuxt.ready()
}
} catch (err) {
console.log("EveServer-Root failure", err);
}
const app = express()
var router = express.Router();
//------------------------------------------------------------------
// Uses
//------------------------------------------------------------------
// Give nuxt middleware to express
app.use(nuxt.render)
app.use(express.json());
app.use(bodyParser.json()); // to support JSON-encoded bodies
//app.use('/', router);
// Transform req & res to have the same API as express
// So we can use res.status() & res.json()
router.use((req, res, next) => {
Object.setPrototypeOf(req, app.request)
Object.setPrototypeOf(res, app.response)
req.res = res
res.req = req
next()
})
app.disable('x-powered-by')
app.use(function (req, res, next) {
next()
})
// Sessions to create `req.session`
app.use(session({
secret: 'super-secret-key',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000 }
}))
app.use(bodyParser.urlencoded({ extended: true })); // to support URL-encoded bodies
var https_setting = {
cert: fs.readFileSync( '/home/username/AppDev/Web/example.com/positivessl/example.com.crt', "utf8"),
ca: fs.readFileSync( '/home/username/AppDev/Web/example.com/positivessl/example.com.ca-bundle', "utf8"),
key: fs.readFileSync( '/home/username/AppDev/Web/example.com/positivesslexample.com.key', "utf8")
} ;
https.createServer(https_setting, app).listen(port, host);
consola.ready({
message: `Server listening on http://${host}:${port}\n\tServer is live`,
badge: true
})
}
start()
Nuxt index. js
Моя основная проблема : я не могу отобразить веб-страницу, кроме отображения:
Прокси-сервер получил неверный ответ от вышестоящего сервера. Прокси-сервер не смог обработать запрос Причина: Ошибка чтения с удаленного сервера
Любые рекомендации приветствуются! Заранее спасибо.