前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 安装 Tengine、申请 SSL 证书、配置 gzip 、http2.0 教程

Ubuntu 安装 Tengine、申请 SSL 证书、配置 gzip 、http2.0 教程

原创
作者头像
lqmeta
发布2020-07-06 12:47:31
1.6K0
发布2020-07-06 12:47:31
举报
文章被收录于专栏:得一

本文将讲述如何在腾讯云云服务器中安装 Tengine ,并配置 gzip 、http2.0等模块。

重装系统

由于我之前已经在腾讯云云服务器中配置过 Tengine,所以我这里重装一下系统。

重装系统
重装系统

使用 SecureCRT 远程登录

配置 Session
配置 Session

由于首次登录会弹出密码登录框,腾讯云云服务器在重装系统的时候是有让用户填写登录密码的:

登录界面
登录界面

首次登录可以使用密码,之后我们可以配置 SSH 免密登录。

安装 Tengine

下载最新的 Tengine 代码

代码语言:txt
复制
cd /home/ubuntu/
git clone https://github.com/alibaba/tengine.git

备注: 我将其下载到用户 ubuntu 的根目录下面

下载最新的 Tengine 代码
下载最新的 Tengine 代码

构建 Tengine 源码

代码语言:txt
复制
cd tengine/

# 安装依赖
sudo apt-get install openssl libssl-dev libpcre3 libpcre3-dev

# 配置 gzip 、http2.0 等模块
./configure --prefix=/usr/share/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module

make
sudo make install

Tengine默认将安装在 /usr/local/nginx 目录。

不过你可以用'--prefix'来指定你想要的安装目录。我在 ./configure 时就通过设置 --prefix=/usr/share/nginx 将其安装到目录 /usr/share/nginx 中。

启动 Tengine

代码语言:txt
复制
cd /usr/share/nginx

# 查看 Tengine 版本信息
./sbin/nginx -v

# 启动 Tengine
sudo ./sbin/nginx
启动 Tengine
启动 Tengine

启动 Tengine 后,即可以通过 ip 去访问。

通过 ip 去访问
通过 ip 去访问

配置域名访问

配置域名访问
配置域名访问

注册购买域名后,点击“操作”栏的“解析”按钮

解析域名
解析域名

备注: 一般只需解析 “www” 和 “@” 这两个主机记录类型即可。

通过域名访问 http://asdf123.club:

http://asdf123.club
http://asdf123.club

配置 HTTPS 及 开启 http2

申请 SSL 证书

https://console.cloud.tencent.com/ssl

申请 SSL 证书
申请 SSL 证书

点击“申请免费证书”

申请免费证书
申请免费证书
自动 DNS 验证
自动 DNS 验证
证书详情 -  待验证状态
证书详情 - 待验证状态

等到证书申请成功后,即可以在控制面板中“下载”使用(选择 Nginx 证书)

img2.png
img2.png
选择 Nginx 证书
选择 Nginx 证书

在 Tengine 中配置 SSL 证书

代码语言:txt
复制
cd /usr/share/nginx/conf
sudo mkdir cert
cd cert

使用 rz 指令将文件上传上去

代码语言:txt
复制
sudo rz -bye
SSL 证书
SSL 证书

配置 nginx.conf 文件

代码语言:txt
复制
cd /usr/share/nginx/conf
sudo vim nginx.conf

增加如下的 server 配置:

代码语言:txt
复制
server {
    listen       443 ssl http2;
    server_name  asdf123.club;

    ssl_certificate   cert/1_asdf123.club_bundle.crt;
    ssl_certificate_key  cert/2_asdf123.club.key;

    location / {
        root   html;
        index  index.html index.htm;
    }
}

备注:Nginx配置http2很简单,只需要在listen的端口后新增http2标识即可

可以使用 sudo su 切换 root 用户。

重启 Nginx:

代码语言:txt
复制
# 检查配置
/usr/share/nginx/sbin/nginx -t
# 重启
/usr/share/nginx/sbin/nginx -s reload

访问: https://asdf123.club/

https
https

如何判断网站是否使用了HTTP/2

使用 chrome 打开网站,打开 console。执行

代码语言:txt
复制
window.chrome.loadTimes()
如何判断网站是否使用了HTTP/2
如何判断网站是否使用了HTTP/2

配置开启 gzip

代码语言:txt
复制
# 开启和关闭gzip模式: on|off
gzip on;
#gizp压缩起点,文件大于1k才进行压缩
gzip_min_length 1k;
# gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
gzip_comp_level 6;
# 进行压缩的文件类型。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
#nginx对于静态文件的处理模块,开启后会寻找以.gz结尾的文件,直接返回,不会占用cpu进行压缩,如果找不到则不进行压缩: on|off
gzip_static on;
# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;
# 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区 
gzip_buffers 2 4k;
# 设置gzip压缩针对的HTTP协议版本
gzip_http_version 1.1;

如下图所示,配置 nginx.conf:

配置开启 gzip
配置开启 gzip

配置好后,重启 Nginx。

如何判断是否开启 gzip

可以 nginx 的 response headers 中的 Content-Encoding 是 gzip 来判断是否开启了。

判断是否开启 gzip
判断是否开启 gzip
效果对比
效果对比

完整的 Nginx 配置 demo

代码语言:txt
复制
#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#error_log  "pipe:rollback logs/error_log interval=1d baknum=7 maxsize=2G";

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;
    #access_log  "pipe:rollback logs/access_log interval=1d baknum=7 maxsize=2G"  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    # 开启和关闭gzip模式: on|off
    gzip off;
    #gizp压缩起点,文件大于1k才进行压缩
    gzip_min_length 1k;
    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 6;
    # 进行压缩的文件类型。
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript;
    #nginx对于静态文件的处理模块,开启后会寻找以.gz结尾的文件,直接返回,不会占用cpu进行压缩,如果找不到则不进行压缩: on|off
    gzip_static on;
    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;
    # 设置压缩所需要的缓冲区大小,以4k为单位,如果文件为7k则申请2*4k的缓冲区 
    gzip_buffers 2 4k;
    # 设置gzip压缩针对的HTTP协议版本
    gzip_http_version 1.1;
    server {
        listen       443 ssl http2;
        server_name  asdf123.club;

        ssl_certificate   cert/1_asdf123.club_bundle.crt;
        ssl_certificate_key  cert/2_asdf123.club.key;
        
        location / {
            root   html;
	    index  index.html index.htm;	    
        }
    }
    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        #access_log  "pipe:rollback logs/host.access_log interval=1d baknum=7 maxsize=2G"  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 重装系统
  • 使用 SecureCRT 远程登录
  • 安装 Tengine
    • 下载最新的 Tengine 代码
      • 构建 Tengine 源码
        • 启动 Tengine
        • 配置域名访问
        • 配置 HTTPS 及 开启 http2
          • 申请 SSL 证书
            • 在 Tengine 中配置 SSL 证书
              • 配置 nginx.conf 文件
                • 如何判断网站是否使用了HTTP/2
                  • 配置开启 gzip
                    • 如何判断是否开启 gzip
                • 完整的 Nginx 配置 demo
                相关产品与服务
                SSL 证书
                腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档