网站开发流行,昆明网站建设哪家公司好,优化设计答案四年级上册语文,泰安网站建设排行1 Ubuntu 20.04 上安装 Nginx Nginx 发音 “engine x” ,是一个开源软件#xff0c;高性能 HTTP 和反向代理服务器#xff0c;用来在互联网上处理一些大型网站。它可以被用作独立网站服务器#xff0c;负载均衡#xff0c;内容缓存和针对 HTTP 和非 HTTP 的反向代理服务器。…1 Ubuntu 20.04 上安装 Nginx Nginx 发音 “engine x” ,是一个开源软件高性能 HTTP 和反向代理服务器用来在互联网上处理一些大型网站。它可以被用作独立网站服务器负载均衡内容缓存和针对 HTTP 和非 HTTP 的反向代理服务器。和 Apache相比Nginx 可以处理大量的并发连接并且每个连接占用一个很小的内存。
1.1 前提条件 在继续之前保证以 sudo 用户身份登录并且你不能运行 Apache 或者 其他处理进程在80端口和443端口。
1.2 安装 Nginx Nginx 在默认的 Ubuntu 源仓库中可用。想要安装它运行下面的命令
sudo apt update
sudo apt install nginx一旦安装完成Nginx 将会自动被启动。你可以运行下面的命令来验证它
// 设置nginx开机启动
systemctl start nginx.service
systemctl enable nginx.service
sudo systemctl status nginx输出类似下面这样 1.3 配置防火墙 现在你已经在你的服务器上安装和运行了 Nginx你需要确保你的防火墙被配置好允许流量通过 HTTP80和 HTTPS443端口。假设你正在使用UFW你可以做的是启用 ‘Nginx Full’ profile它包含了这两个端口 UFW 全称为 Uncomplicated Firewall是 Ubuntu 系统上配置 iptables 防火墙的工具。UFW 提供一个非常友好的命令用于创建基于IPV4IPV6的防火墙规则。
sudo ufw allow Nginx Full想要验证状态输入
sudo ufw status输出将会像下面这样 1.4 测试安装 想要测试你的新 Nginx 安装在你的浏览器中打开http://YOUR_IP你应该可以看到默认的 Nginx 加载页面像下面这样 1.5 Nginx 配置文件结构以及最佳实践
所有的 Nginx 配置文件都在 /etc/nginx/ 目录下。主要的 Nginx 配置文件是 /etc/nginx/nginx.conf。为每个域名创建一个独立的配置文件便于维护服务器。你可以按照需要定义任意多的 block 文件。Nginx 服务器配置文件被储存在 /etc/nginx/sites-available 目录下。在 /etc/nginx/sites-enabled 目录下的配置文件都将被 Nginx 使用。最佳推荐是使用标准的命名方式。例如如果你的域名是mydomain.com那么配置文件应该被命名为 /etc/nginx/sites-available/mydomain.com.conf如果你在域名服务器配置块中有可重用的配置段把这些配置段摘出来做成一小段可重用的配置。Nginx 日志文件(access.log 和 error.log)定位在 /var/log/nginx/ 目录下。推荐为每个服务器配置块配置一个不同的access和error。你可以将你的网站根目录设置在任何你想要的地方。最常用的网站根目录位置包括 /home/user_name/site_name/var/www/site_name/var/www/html/site_name/opt/site_name
2 HTTPS介绍 HTTPS是一种通过计算机网络进行安全通信的传输协议经由HTTP进行通信利用SSL/TLS建立全信道加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证同时保护交换数据的隐私与完整性。
特点
内容加密采用混合加密技术中间者无法直接查看明文内容验证身份通过证书认证客户端访问的是自己的服务器保护数据完整性防止传输的内容被中间人冒充或者篡改。
2.1 HTTP 原理 HTTPS 主要由两部分组成HTTP SSL / TLS也就是在 HTTP 上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过 TLS 进行加密所以传输的数据都是加密后的数据。 (1) 客户端的浏览器首先要通过网络与服务器建立连接该连接是通过TCP来完成一般 TCP 连接的端口号是80。 建立连接后客户机发送一个请求给服务器请求方式的格式为统一资源标识符URL、协议版本号后边是MIME信息包括请求修饰符、客户机信息和许可内容。 (2) 服务器接到请求后给予相应的响应信息其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码后边是 MIME 信息包括服务器信息、实体信息和可能的内容。
2.2 HTTPS 原理
(1) 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器(2) 服务器从算法列表中选择一种加密算法并将它和一份包含服务器公用密钥的证书发送给客户端该证书还包含了用于认证目的的服务器标识服务器同时还提供了一个用作产生密钥的随机数(3) 客户端对服务器的证书进行验证有关验证证书可以参考数字签名并抽取服务器的公用密钥然后再产生一个称作 pre_master_secret 的随机密码串并使用服务器的公用密钥对其进行加密参考非对称加 / 解密并将加密后的信息发送给服务器(4) 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值独立计算出加密和 MAC密钥(5) 客户端将所有握手消息的 MAC 值发送给服务器(6) 服务器将所有握手消息的 MAC 值发送给客户端
2.3 HTTPS 优缺点
优点
使用 HTTPS 协议可认证用户和服务器确保数据发送到正确的客户机和服务器HTTPS 协议是由 SSLHTTP构建的可进行加密传输、身份认证的网络协议要比HTTP安全可防止数据在传输过程中被窃取、改变确保数据的完整性HTTPS 是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻击的成本
缺点
相同网络环境下HTTPS 协议会使页面的加载时间延长近 50%增加 10%到 20%的耗电。此外HTTPS 协议还会影响缓存增加数据开销和功耗成本增加。部署 HTTPS 后因为 HTTPS 协议的工作要增加额外的计算资源消耗例如 SSL 协议加密算法和 SSL 交互次数将占用一定的计算资源和服务器成本。
3 配置HTTPS
3.1 准备
1. 一台可用的服务器 首先需要有一台可用的服务器后续用作域名解析。如果没有服务器可以先购买一台云服务器。
2. 一个备案过的域名 需要一个备过案的域名用于解析服务器的IP地址。在对应购买的域名的服务商网站控制台可以完成备案。
3. SSL证书 SSL证书有免费和收费两个渠道。 我们这边主要介绍腾讯云和阿里云(排名不分先后)两个免费申请SSL证书的方式当然资金允许情况下也可以直接购买。
4. 阿里云申请免费SSL证书 阿里云免费证书规则自2021年起免费证书申请将切换到证书资源包下每个实名个人/企业主体在一个自然年内可以一次性领取20张免费证书免费证书每张证书有效期一年。免费证书仅支持绑定一个单域名不支持绑定通配符域名或者IP。 阿里云申请免费SSL证书文档官方文档地址
5. 腾讯云申请免费SSL证书 腾讯云免费证书规则只支持绑定1个域名可以支持绑定二级域名 abc.com、或是三级域名 example.abc.com。同一主域最多只能申请20张免费证书,每张有效期一年免费证书到期后如需继续使用证书需要重新申请并安装。 腾讯云申请免费SSL证书文档官方文档地址
3.2 域名升级成HTTPS 我们如果直接用域名解析IP地址域名也是可以访问的但是是HTTP环境的。 我们使用的Nginx来配置升级HTTPS Github地址完整的单域名nginx.conf文件配置(清晰注释) – 点击进入 当我们在上面申请成功免费的SSL证书之后点击下载证书。 下载完成会得到一个压缩包我们解压之后选择Nginx文件夹里面的两个文件就是我们后续需要配置的文件。 下载到本地的压缩文件包解压后Nginx文件夹包含
.pem文件是证书文件.key文件证书的私钥文件。 这时候我们打开我们的SSH工具进入Nginx的配置
// 进入nginx目录,默认安装在/etc/nginx这个目录如果未找到可以根据nginx安装的位置进入
cd /etc/nginx步骤一 在Nginx的安装目录下创建cert目录并且将下载的全部文件拷贝到 /etc/nginx/cert 目录中使用SSH工具附带的本地文件上传功能将本地证书文件和密钥文件上传到Nginx服务器的证书目录[示例中为 /etc/nginx/cert]。如果申请证书时是自己创建的CSR文件请将对应的私钥文件放到cert目录下并且命名为a.key 步骤二 然后开始Nginx配置,编辑Nginx配置文件nginx.conf
// 进入nginx目录,默认安装在/etc/nginx这个目录如果未找到可以根据nginx安装的位置进入
cd /etc/nginx// 编辑nginx的配置文件
vi nginx.conf步骤三 修改与证书相关的配置内容按i键进入编辑模式,增加代码监听443端口如下 server {listen 443 ssl;listen [::]:443;server_name localhost;ssl on;root /usr/share/nginx/html;index index.html index.htm;#证书文件名称ssl_certificate cert/a.crt;#私钥文件名称ssl_certificate_key cert/a.key;ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;location / {}error_page 404 /404.html;location /40x.html {}error_page 500 502 503 504 /50x.html;location /50x.html {}}步骤四 执行命令 /sbin/nginx -s reload 重启服务器即可如果重启未成功说明配置文件nginx.conf错误检查是否有错误后执行重启
步骤五 验证是否安装成功,证书安装完成后可通过访问证书的绑定域名验证该证书是否安装成功。 上述步骤成功之后我们就可以通过 https://www.域名.com 来访问我们网站了但是问题来了因为我们申请的免费SSL证书是单域名绑定也就是只能让https://www.域名.com 下的内容实现HTTPS访问我们的二级域名 api.域名.com 还是只能 HTTP 访问。 参考
如何在 Ubuntu 20.04 上安装 Nginxhttps://www.itcoder.tech/posts/how-to-install-nginx-on-ubuntu-20-04/网站还是HTTP?快把你的域名和二级域名变成HTTPShttps://juejin.cn/post/6953649812097122312Nginx配置HTTP跳转到HTTPShttps://juejin.cn/post/7044911075480829959