配置Nginx做Node.js应用的反向代理 (HTTPS)

配置Nginx做为反向代理的原因之一是:客户的Node.js应用需要HTTPS支持。本帖简单记录在Ubuntu 16.04安装配置的步骤。

#1 安装Node.js

用PPA你可以的到最新版本的node.js

执行如下命令安装PPA

安装 node.js:

为了使一些npm包正常工作(例如需要从源码构建的包),你需要安装 build-essentials 包:

#2 创建一个简单的Node.js应用

写入如下内容:

运行hello.js:

使用浏览器访问:

配置Nginx做Node.js的反向代理 安装Nodejs Ubuntu 16.04 linux

#3 配置Nginx做为反向代理

安装Nginx:

编辑配置文件:

把文件中的内容替换为:

注意替换上面的 your_domain.com 和 8081。上面的配置实现:在访问your_domain.com时,Nginx把请求转发到hello.js的8081端口。

如果你还有另一个应用,例如http://your_domain.com/app2,你可以再添加一个loacation:

重启nginx:

#4 添加HTTPS支持(使用免费的Let’s Encrypt

要使用Let’s Encrypt,你必须有一个域名并做好A记录。

如果你有付费证书,跳过生成证书的步骤。

从github clone源码:

获得SSL证书:

由于Let’s Encrypt要使用80端口做认证,所以需要暂停Nginx的运行:

获得证书:

根据提示提供你的信息,包括域名、邮箱啥的。

执行成功之后,证书保存到了/etc/letsencrypt/your_domain/。

配置Nginx:

把内容替换为:

注意替换上面的域名、证书路径等信息。

再次启动nginx:

现在访问http://your_domain或https://your_domain,如果可以看到Hello World表示配置成功。

关于Let’s Encrypt证书的更新,看如下帖:

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注