Nous avons un site en cours d'exécution sur Next.js et Express. C'est sur un serveur cPanel avec Aapche et avec nginx servant de proxy inverse.Comment puis-je faire mon nextjs avec le site Express fonctionne sur SSL
J'ai besoin d'avoir ssl sur le site. Mais je suis assez confus avec la façon dont les configurations devraient être.
Mes server.js:
const express = require('express')
const next = require('next')
const https = require('https');
const fs = require('fs');
//const forceSSL = require('express-force-ssl')
var ssl_options = {
key: fs.readFileSync('/home/myreactsite.key'),
cert: fs.readFileSync('/home/myreactsite.crt'),
};
const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev })
const handle = app.getRequestHandler()
const favicon = require('serve-favicon')
const path = require('path')
app.prepare()
.then(() => {
const server = express()
server.use(favicon(path.join(__dirname, 'static', 'images', 'favicon.ico')))
server.get('*', (req, res) => {
return handle(req, res)
})
server.listen(3007, (err) => {
if (err) throw err
console.log('> Ready on http://localhost:3007')
})
var httpsServer = https.createServer(ssl_options,server).listen('8445', (err) => {
if (err) throw err
console.log('> Ready on https://localhost:8445')
})
})
.catch((ex) => {
console.error(ex.stack)
process.exit(1)
})
Apache fonctionne sur 8080 Nginx fonctionne sur 80 Next.js fonctionne aussi bien sur 3007 et 8445 (je préfère pour ssl)
config Apache Mon contient ce qui suit pour cacher le port 3007
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass/http://myreactsite.com:3007/
le site fonctionne très bien si j'accéder comme http://myreactsite.com. Mais il échoue quand j'accède https://myreactsite.com bien que je puisse accéder à la version de https en spécifiant le numéro de port en tant que https://myreactsite.com:8445
Je veux le faire fonctionner sans spécifier le port de https.
Comment puis-je obtenir mon site pour forcer toutes les pages à https sans spécifier le port?
Ne pouvez-vous pas laisser le proxy inverse gérer la terminaison SSL? – robertklep
Modifier le port dans la section Proxy de 3007 à 8445 et redémarrer apache –