如何运行 Angular 通用 HTTPS

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});
});

Lau*_*aml 2

所以这个问题已经开放太久了:

我自己也试图解决这个问题。我的第一种方法是更改​​ 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)

希望这可以帮助 ;)