Duy*_*ỳnh 6 angular-universal angular angular7
我在主页上遵循 angular 通用:https : //angular.io/guide/universal
没有通用,我用命令运行我的 angular 项目
ng serve --ssl true --ssl-key /node_modules/browser-sync/lib/server/certs/server.key --ssl-cert /node_modules/browser-sync/lib/server/certs/server.crt --主机 0.0.0.0
现在,我将通用添加到我的项目中,但不知道如何设置它使用“https”运行。
请帮帮我。
这是我的 server.ts
导入 'zone.js/dist/zone-node'; 从“@angular/core”导入{enableProdMode};
// Express Engine
import {ngExpressEngine} from '@nguniversal/express-engine';
// 为延迟加载导入模块映射 import {provideModuleMap} from '@nguniversal/module-map-ngfactory-loader';
import * as express from 'express';
从“路径”导入 {join};
// 在 Prod 模式下更快的服务器渲染(从不需要开发模式)
enableProdMode();
// Express 服务器
const app = express();
const PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(), 'dist/browser');
// * 笔记 ::
const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = require('./dist/server/main');
// 我们的通用快递引擎(找到@ https://github.com/angular/universal/tree/master/modules/express-engine)
app.engine('html', ngExpressEngine({
bootstrap: AppServerModuleNgFactory,
providers: [
provideModuleMap(LAZY_MODULE_MAP)
]
}));
app.set('视图引擎', 'html');
app.set('views', DIST_FOLDER);
// 示例 Express Rest API 端点
// app.get('/api/**', (req, res) => { });
// 从 /browser
提供静态文件app.get(' . ', express.static(DIST_FOLDER, { })); // 所有常规路由都使用通用引擎 app.get('*', (req,
res.render('index', { req });
});
// 启动 Node 服务器
app.listen(PORT, () => {
console.log(Node Express server listening on http://localhost:${PORT});
});
所以这个问题已经开放太久了:
我自己也试图解决这个问题。我的第一种方法是更改 server.ts Express 服务器,以便它创建一个 HTTPS 实例而不是 HTTP 实例。这失败了,因为它尝试在 docker 容器中启动该文件。
所以回到开始,我使用 HTTP 启动节点服务器,并使用 Nginx 服务器作为代理连接到节点服务器。这还有一个好处是您的 Web 应用程序能够与更多客户端连接。
在你的 Nginx 配置文件中应该有这样的内容:
server {
listen 80;
listen 443 ssl;
server_name SERVER.com;
ssl_certificate /etc/nginx/ssl/live/SERVER.com/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/live/SERVER.com/privkey.pem;
ssl_dhparam /etc/nginx/dhparam/dhparam-2048.pem;
location / {
proxy_pass DESTINATION:PORT;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助 ;)
| 归档时间: |
|
| 查看次数: |
2140 次 |
| 最近记录: |