Nginx 的妙用之处

本文将从反向代理、文件压缩、地址重写三方面来讲解 Nginx 的使用技巧!

反向代理


反向代理就是当请求访问你的代理服务器时,代理服务器会对你的请求进行转发,可以转发到静态的资源路径上去,也可以转发到动态的服务接口上去。下面我们以对域名进行代理为例,来讲讲如何进行静态代理和动态代理。

静态代理

静态代理就是将请求代理到不同的静态资源路径上去,这里我们将对 antoniopeng.com 的请求代理到我的文档项目中。

首先我们修改下本机的 host 文件:

192.168.6.132 antoniopeng.com

然后将我们的文档项目 docs 上传到 nginx 的 html 目录中去。

修改 ngxin.conf 对文档项目进行反向代理:

server {
    listen       80;
    server_name  antoniopeng.com; #修改域名

    location / {
        root   /usr/share/nginx/html/docs; #代理到docs文件夹中
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

重启 nginx 服务后即可访问。

动态代理

动态代理就是把代理服务器的请求转发到另一个服务上去,这里我们将对 antoniopeng.com 的请求代理到 http://192.168.3.101:4000 上去。

首先我们修改下本机的 host 文件,添加如下规则:

192.168.6.132 antoniopeng.com

修改 nginx.conf 将请求代理到 http://192.168.3.101:4000 上去:

server {
    listen       80;
    server_name  antoniopeng.com; #修改域名

    location / {
    	proxy_pass   http://192.168.3.101:4000; #修改为代理服务地址
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

重启 nginx 服务后即可访问。

文件压缩


如果我们租用了一个带宽很低的服务器,网站访问速度会很慢,这时我们可以通过让 nginx 开启 GZIP 压缩来提高网站的访问速度。

首先我们对 nginx 进行限速操作,限制每个连接的访问速度为 128K 来建立一个比较慢的访问场景。

修改 nginx.conf 进行限速操作:

http {

    gzip on; #开启gzip
    gzip_disable "msie6"; #IE6不使用gzip
    gzip_vary on; #设置为on会在Header里增加 "Vary: Accept-Encoding"
    gzip_proxied any; #代理结果数据的压缩
    gzip_comp_level 6; #gzip压缩比(1~9),越小压缩效果越差,但是越大处理越慢,所以一般取中间值
    gzip_buffers 16 8k; #获取多少内存用于缓存压缩结果
    gzip_http_version 1.1; #识别http协议的版本
    gzip_min_length 1k; #设置允许压缩的页面最小字节数,超过1k的文件会被压缩
    gzip_types application/javascript text/css; #对特定的MIME类型生效,js和css文件会被压缩

    include /etc/nginx/conf.d/*.conf;
}

访问目标服务器资源后,nginx 返回请求头中添加了 Content-Encoding: gzip 的信息:

img

地址重写


有的时候我们的网站更换了域名,但还有用户在使用老的域名访问,这时可以通过 nginx 的地址重写来让用户跳转到新的域名进行访问。

比如说原来我们用的 antoniopeng.com 这个域名不用了,现在改成 www.antoniopeng.com 了来访问网站了。修改 nginx.conf 将地址带参数重写到新地址:

server {
    listen       80;
    server_name  antoniopeng.com; 
    
    rewrite "^/(.*)$" http://www.antoniopeng.com/$1; #地址重写到新地址

    location / {
        root   /usr/share/nginx/html/docs; 
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

}

此时访问旧域名 antoniopeng.com 会直接跳转到 www.antoniopeng.com

更多干货请移步:https://antoniopeng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值