本文将讲述如何在腾讯云云服务器中安装 Tengine ,并配置 gzip 、http2.0等模块。
由于我之前已经在腾讯云云服务器中配置过 Tengine,所以我这里重装一下系统。
由于首次登录会弹出密码登录框,腾讯云云服务器在重装系统的时候是有让用户填写登录密码的:
首次登录可以使用密码,之后我们可以配置 SSH 免密登录。
cd /home/ubuntu/
git clone https://github.com/alibaba/tengine.git
备注: 我将其下载到用户 ubuntu 的根目录下面
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
中。
cd /usr/share/nginx
# 查看 Tengine 版本信息
./sbin/nginx -v
# 启动 Tengine
sudo ./sbin/nginx
启动 Tengine 后,即可以通过 ip 去访问。
注册购买域名后,点击“操作”栏的“解析”按钮
备注: 一般只需解析 “www” 和 “@” 这两个主机记录类型即可。
通过域名访问 http://asdf123.club
:
https://console.cloud.tencent.com/ssl
点击“申请免费证书”
等到证书申请成功后,即可以在控制面板中“下载”使用(选择 Nginx 证书)
cd /usr/share/nginx/conf
sudo mkdir cert
cd cert
使用 rz 指令将文件上传上去
sudo rz -bye
cd /usr/share/nginx/conf
sudo vim nginx.conf
增加如下的 server 配置:
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:
# 检查配置
/usr/share/nginx/sbin/nginx -t
# 重启
/usr/share/nginx/sbin/nginx -s reload
使用 chrome 打开网站,打开 console。执行
window.chrome.loadTimes()
# 开启和关闭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:
配置好后,重启 Nginx。
可以 nginx 的 response headers 中的 Content-Encoding 是 gzip 来判断是否开启了。
#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 删除。