nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > nginx配置反向代理、限速、url重写

nginx配置方式(反向代理、限速、url重写)

作者:小青头

文章主要介绍了Nginx的反向代理和正向代理的基本概念、应用场景、缓存服务器的使用以及限速保护的方法,同时,还详细讲解了Nginx的URL重写功能和一些常用的变量

nginx反向代理

代理服务器实现

location / {
    proxy_pass http://139.199.32.236:8080
}

使用proxy_pass字段,后面是业务服务器.

每次访问服务器根目录时,自动找业务服务器获取数据

其他字段

请求头,业务服务器可以从代理服务器上看到客户端信息

nginx限速

保护磁盘IO

限速原理

缓存请求、匀速处理、多余请求直接丢弃

限速实现

代码

1.limit_req_zone 限制请求数

2.限制下载个数和下载速度

limit_req_zone $binary_remote_addr zone=baism:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
    listen 80;
	server name localhost;
	location / {
	    root html;
		index index.html index.htm	
	}
	location /abc {
		limit_req zone=baism burst=5 nodelay;
		limit_conn addr 1;
		limit_rate 100k;
		limit_rate_after 100m;
	}
}

请求数不能超过1个

下载到100m就会限速到100kb/s

nginx限速

保护磁盘IO

限速原理

缓存请求、匀速处理、多余请求直接丢弃

限速实现

代码

1.limit_req_zone 限制请求数

2.限制下载个数和下载速度

limit_req_zone $binary_remote_addr zone=baism:10m rate=1r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;
server {
    listen 80;
	server name localhost;
	location / {
	    root html;
		index index.html index.htm	
	}
	location /abc {
		limit_req zone=baism burst=5 nodelay;
		limit_conn addr 1;
		limit_rate 100k;
		limit_rate_after 100m;
	}
}

请求数不能超过1个

下载到100m就会限速到100kb/s

nginx实现url重写rewrite

将用户在地址栏输入的地址重新编辑。

作用场景:域名变更、用户跳转、伪静态场景

重写指令

代码1

location /baism00 {
	rewrite ^(.*)$ http://192.168.10.129;
}

location /baism01 {
	rewrite ^(.*)$ http://192.168.10.129 break;
}

location /baism02 {
	rewrite ^(.*)$ http://192.168.10.129 redirect;
}

location /baism03 {
	rewrite ^(.*)$ http://192.168.10.129 permanent;
}

重写规则:rewrite 正则 替代内容 flag标记

flag标记

使用正则匹配,注意rewrite匹配字符是 目录全部内容,不是location匹配后剩下的内容

代码2

location /html {
      rewrite /html/(.*)$ /post/$1 permanent;
}   

rewrite 匹配内容 替换内容

匹配内容使用括号分组匹配

替换内容使用$1,$2代表匹配的内容

代码3

location / {
    root html;
    index index.html index.html;
    if ($http_user_agent ~* 'Chrome') {
        break;
        return 43;
        #return http://www.jd.com
    }
}

nginx匹配

注意:if和()和{}之间都有空格

#注释 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文