Next.jsとExpressで動作するサイトがあります。これはAapcheのcPanelサーバ上にあり、nginxと一緒にリバースプロキシとして機能します。sslでエクスプレスサイトの作業でnextjsを作成する方法
私はサイトにsslを持っている必要があります。しかし、私は構成がどうあるべきかとかなり混同しています。
マイ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は8080 nginxの上で実行されますが
私のApacheの設定は含まれています(私はSSLのためにそれを好む)の両方の3007および8445上で動作する80 Next.js上で実行されます私はhttp://myreactsite.comとしてそれにアクセスする場合は、サイト3007
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass/http://myreactsite.com:3007/
ポートを非表示にするには、次のことは正常に動作します。しかし、https://myreactsite.comにアクセスすると、ポート番号を指定してhttpsバージョンにアクセスできますが、https://myreactsite.com:8445
httpsポートを指定せずに動作させたいと思っています。
どのようにしてポートを指定せずにすべてのページをhttpsに強制することができますか?
リバースプロキシでSSL終了を処理させることはできませんか? – robertklep
プロキシセクションのポートを3007から8445に変更し、Apacheを再起動します –