【问题标题】:How to run angular universal HTTPS如何运行角度通用 HTTPS
【发布时间】:2019-10-12 02:15:25
【问题描述】:

我在主页上关注 Angular Universal: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 --host 0.0.0.0

现在,我将通用添加到我的项目中,但不知道如何设置它使用“https”运行。
请帮帮我。

这里是我的 server.ts

导入'zone.js/dist/zone-node'; 从“@angular/core”导入 {enableProdMode};
// 快速引擎
从“@nguniversal/express-engine”导入 {ngExpressEngine};
// 导入模块映射以进行延迟加载 从“@nguniversal/module-map-ngfactory-loader”导入 {provideModuleMap};

从'express'导入*作为快递;
从“路径”导入 {join};

// 更快的服务器渲染 w/ Prod 模式(从不需要开发模式)
enableProdMode();

// 快递服务器
const app = express();

常量 PORT = process.env.PORT || 4000;
const DIST_FOLDER = join(process.cwd(), 'dist/browser');

// * 注意 :: 将此保留为 require(),因为此文件是从 webpack 动态构建的
const {AppServerModuleNgFactory, LAZY_MODULE_MAP} = 要求('./dist/server/main');

// 我们的通用快递引擎(找到@https://github.com/angular/universal/tree/master/modules/express-engine
app.engine('html', ngExpressEngine({
引导程序:AppServerModuleNgFactory,
提供者:[
提供ModuleMap(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, {
最大年龄:'1y'
}));

// 所有常规路由都使用通用引擎
app.get('*', (req, res) => {
res.render('index', { req });
});

// 启动节点服务器
app.listen(PORT, () => {
控制台.log(Node Express server listening on http://localhost:${PORT});
});

【问题讨论】:

标签: angular angular7 angular-universal


【解决方案1】:

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

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

希望这会有所帮助;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    • 2019-11-12
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多