嗨,伙计们!我最近决定在虚拟机上托管自己的网站。我已经尝试了很多事情,现在我很高兴分享一些我的经验。本文显示了我如何使用Nginx配置反向代理和SSL加密。
什么是反向代理?
基本上是位于我们网站服务器前面的服务器。因此,每当客户的请求来自客户端时,将其发送到我们的网站服务器之前,它将被反向代理服务器截获。
使用反向代理服务器的优势:
-
负载平衡
-
保护免受攻击
-
SSL加密
-
缓存
设置项目
使用的关键技术
- 虚拟机 - 运行的虚拟机实例。有许多可供出租的虚拟机,例如Amazon EC2,Google Compute Engine,Azure Virtual Machine等
- 域名 - 注册域名。像Namecheap,Google Domains或GoDaddy这样的域注册商提供并让我们管理域名。
- Web应用程序 - 服务器端应用程序。在github here上查看代码。
- nginx-通常用于Web服务和反向代理的开源软件。
它如何工作
将NGINX配置为反向代理
- 安装nginx并确保成功运行。
$ sudo apt update
$ sudo apt install nginx
$ sudo service nginx status
- /etc/nginx/sites-abailable/in eett/etce in ew>编辑服务器配置文件。
$ sudo nano /etc/nginx/sites-available/wildanazz.com
- 确保服务器配置文件中没有语法错误。
$ sudo nginx -t
- 通过创建从站点可用目录到启用站点的目录的链接来启用服务器配置文件。
$ sudo rm link /etc/nginx/sites-enabled/default
$ sudo ln -s /etc/nginx/sites-available/wildanazz.com /etc/nginx/sites-enabled/wildanazz.com
测试应用程序
- 克隆演示应用程序。
$ git clone https://github.com/wildanazz/demo.git
- 运行应用程序。
$ sudo apt install nodejs && sudo npm install yarn -g
$ cd demo
$ yarn --frozen-lockfile && yarn start
- 复制并在浏览器中输入运行虚拟机的IP地址。
安装SSL/TLS证书
在安装SSL/TLS证书之前,注册域名需要指向运行的虚拟机。
- 安装certbot获得免费的SSL证书。
$ sudo snap install --classic certbot
- 运行此代码以使Certbot编辑Nginx配置自动。
$ sudo certbot --nginx
- CERTBOT还可以通过运行此代码在过期之前自动续订证书。
$ sudo certbot renew --dry-run
摘要
在本文中,我讨论了如何设置反向代理服务器并从头开始为我的网站添加SSL证书。如果您决定在虚拟机上托管自己的网站,我强烈建议您使用反向代理。如果您找到了一些我可以改进的东西,或者您会做不同的事情?在评论中让我知道。