当前位置:
文档之家› Nginx反向代理以及性能优化
Nginx反向代理以及性能优化
此代理服务器,对于“我们”负载均衡)。
对于人来说不可感知,但对于服务器来说是可以感知的,我们叫他反向代理服务器。
nginx实现反向代理
nginx是高度模块化的,各个功能都封装在模块中,而各个模块的初始化则是根据配置文件来进行的。
缓存格式:key-value格式 key储存在内存中:就是将请求的uri value储存在磁盘上:就是缓存的数据
需要注意的是Nginx缓存需要结合反向代理一起才能实现
问题
对于缓存,我们大概会有以下问如何指定哪些请求被缓存? (3)缓存的有效期是多久? (4)过了有效期的数据是否还能使用? (5)对于某些请求,是否可以不走缓存?
proxy_pass /;
<<< 错误写法
proxy_pass /img; <<< 错误写法
}
此时,如果请求的url是 /book/stu/a.php ,
就会代理成 /book/stu/a.php
nginx的配置中,可以使用变量 内置变量:nginx自带的 自定义变量:用户定义的,定义方法: set 变量名 变量值
nginx实现反向代理
补充1
补充2
location /admin { proxy_pass /; proxy_pass ;
02
Nginx 实现页面缓存
N g i点n x击实添现加页标面题缓文存字
Nginx缓存的基本思路: 利用请求的局部性原理,将请求过的内容在本地建立一 个副本,下次访问时不再连接到后端服务器,直接响应 本地内容 Nginx服务器启动后,会对本地磁盘上的缓存文件进行扫 描,在内存中建立缓存索引,并有专门的进程对缓存文 件进行过期判断、更新等进行管理
如果location中使用了模式匹配(正则),那么,location中的url会
直接补充到代理节点的后面,此时,上游服务器的的后面不能有任何
内容,包括 /
location ~ \.php$ {
proxy_pass ;
<<< 正确写法
proxy_pass :80; <<< 正确写法
正向代理与反向代理
现实生活中的例子
2、反向代理:通过反向代理实现可以做负载均衡,路由到不同的server。
总结
说白了:“正向”、 “反向”是相对于人 的感知来说的。人能 感受到的代理就是正 向代理,人感受不到 的代理就是反向代理
} 请求的url 是/admin/a.html 如果代理方式是 proxy_pass /; 那么去的根目录下找a.html
如果代理方式是 proxy_pass ; 那么去的跟目录下的admin找a.html
实现反向代理的模块
指令语法
模块 :ngx_http_proxy_module 指令: proxy_pass:指定上游服务器的ip和端口
proxy_set_header:添加一个新的首部
演示配置
反向代理的例子 location / {
proxy_pass http://10.220.5.180; proxy_set_header X-Real-IP $remote_addr proxy_set_header Host $proxy_host; }
nginx实现反向代理
补充3
补充4
在location中如果有重定向的话,那么就用重定向 后的uri替换掉代理节点中的uri location / {
rewrite /(.*)$ /index.php?name=$1 break; proxy_pass :80/img; }
nginx学习分享
CONTENTS
1
Nginx实现反向代理
2
Nginx实现页面缓存
3
Nginx实现负载均衡
01
Nginx 做反向代理
正向代理与反向代理
现实生活中的例子
1、正向代理:访问
如上图,因为目前google已被和谐,我们需要vpn才能科学访问 vpn对于“我们”来说,是可以感知到的(我们连接vpn),vpn对于”google服务器”来说,是不可感 知的(google只知道有http请求过来)。 对于人来说可以感知到,但服务器感知不到的服务器,我们叫他正向代理服务器。
Syntax: proxy_pass URL; Default: — Context: location, if in location, limit_except 例子:proxy_pass http://10.220.5.196:8000;
Syntax: proxy_set_header field value; Default: proxy_set_header Host $proxy_host; Context: http, server, location
此时,如果请求的url是 /bajie , 就会代理成 /index.php?name=bajie
rewrite语法:rewrite regex(表达式) replacement(替换项) flag(标志位)。
标志位: break: 本条规则匹配完成后,终止匹配,不再匹配后面的规则 last: 相当于apache里面的[L]标记,表示rewrite,完成重写指 令,之后搜索相应的URI或location permanent: 返回301永久重定向,浏览器地址会显示跳转后的URL 地址 redirect: 返回302临时重定向,浏览器地址会显示跳转后的URL 地址