分类目录归档:Nginx

Nginx常规操作:压缩配置、反向代理、http转向等

概述

nginx真的很好用!而且配置清晰,我在nginx遇到的功能特性以及特性都描述在这里,文档不定时更新

压缩配置

在Web开发中,传输资源(JS/CSS/图片)的体积非常影响使用者的体验。据说,一个页面只要超过7秒钟,浏览者就会失去等待的耐心,并关掉页面。

那么如何尽量减少体积呢?代码混淆压缩是一方面,其实我们还可以在更高角度对资源进行压缩,这个压缩,就是gzip。无论是前端还是后端,在资源体积过大的情况下,都应该使用gzip。我曾经使用gzip,成功将5M的文件压缩成700k

下面描述相关配置:

在http下,输入:

gzip  on; # 打开gzip
gzip_min_length 1k; # 低于1k的不压缩
gzip_comp_level 9; # 压缩比例,1-9,越高压缩率越大
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
gzip_disable "MSIE [1-6]\.";
gzip_vary on; 
然后调用curl,并查看返回的Content-Encoding
可以看到Content-Encoding是gzip,表明该资源是gzip压缩传送过来的

反向代理

有一些内网机器,并不想暴露在对外网络中,又或者是需要做负载均衡。那么这个情况下,就需要nginx的反向代理作为对外的入口了,我常用nginx的代理在http层的代理(貌似最新版本支持tcp代理了)

反向代理是什么?其实这个就应该和正向代理一起来讲述。正向代理,就像是一台中转路由器,它明确告诉你,它不是服务器,只是替你转发请求。而反向代理,就是伪装自己是最终端的服务器,它告诉你它就是处理服务器的终点,但实际上并不是,它还需要将请求转发给内网的其他服务器,这一个转发的过程你不知道,所以这是反向代理。

反向代理的配置如下:

proxy_pass http://127.0.0.1:55161; 
proxy_set_header 

搭建HTTPS服务,为Web应用安全护航

什么是https

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL

https搭建的目的

最大的动力还是因为http明文传输、容易被中间人劫持,同时也是为了让用户浏览安全,所以我尽可能给自己的Web应用加上https证书

搭建环境

操作系统: CentOS7

Linux账号: root

创建https证书

首先执行,创建基本的acme目录:

curl https://get.acme.sh | sh

进入acme目录,并且执行命令

cd /root/.acme.sh

./acme.sh –issue -d laihuanmin.com –dns –yes-I-know-dns-manual-mode-enough-go-ahead-please

按照输出结果,配合域名值记录值,到DNS解析处进行记录添加
看到这是插入的结果,因为我解析了@和www,所以添加了两个TXT记录

在添加之后,再进行二次校验

./acme.sh –renew -d laihuanmin.com –dns –yes-I-know-dns-manual-mode-enough-go-ahead-please

正常情况下,会有Verifying并且Success的字样…