1.反向代理(建议先看正向代理,反向代理则是同样你要与对方服务器建立连接,但是,代理服务器和目标服务器在一个LAN下,所以我们需要与代理服务器先建交,再由他获取与目标服务器的交互,好比一个带刀侍卫守护着目标服务器)
upstream test {
server localhost:8080;
server localhost:8081;
}
upstream test {
server localhost:8080 weight=9;
server localhost:8081 weight=1;
}
upstream test {
ip_hash;
server localhost:8080;
server localhost:8081;
}
upstream backend {
fair;
server localhost:8080;
server localhost:8081;
}
upstream backend {
hash $request_uri;
hash_method crc32;
server localhost:8080;
server localhost:8081;
}
3.HTTP服务器(包含动静分离):
动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。(也就是把一些常用的不变的静态资源放到nginx中,然后动态变化的资源再由我们内部服务器来提供值)
upstream test{
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name localhost;
location / {
root e:wwwroot;
index index.html;
}
# 所有静态请求都由nginx处理,存放目录为html
location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root e:wwwroot;
}
# 所有动态请求都转发给tomcat处理
location ~ .(jsp|do)$ {
proxy_pass http://test;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root e:wwwroot;
}
}
4.正向代理(比如VPN,我们自己的电脑与VPN服务器(代理服务器)同处一个LAN下,但是你可能访问不了一些网站(与目标服务器建立不了链接),所以你与你VPN服务器建立连接,让它与你访问不了的网站交流)
以及根据http状态码配置指定页面、访问权限控制(将访问IP加入到白名单就可以访问,加入到黑名单就不可以访问)编辑
上图是拒绝指定IP,如果是允许指定IP,可进行如下配置,如下:
location /weatherforecast/ {
proxy_pass http://testloadbalance;
# 这个ip是百度输入ip查看到的,也可以通过nginx日志可以看
allow 223.88.45.26;
}
注:如果在同一location块中同时配置deny和allow,配置在最前面的会覆盖下面的,如下:
location /weatherforecast/ {
proxy_pass http://testloadbalance;
# deny all 放在前面,就所有不能访问,deny all 会覆盖下面配置
#deny all;
allow 223.88.45.26;
# deny all 放在后面,被上面allow进行覆盖
deny all;
}
、适配PC或移动端(本质就是判断请求头中User-Agent,只要匹配到移动端,就去找指定移动页面就行啦。),限流等
question2:用Nginx来限流的主要思路是什么?
通过IP限流(为了削峰,即让服务器稳定),主要通过两个方面:1.限制请求速率(限制每个客户端IP地址在规定时间内能够发起的请求次数)2.限制并发连接数(如果只限制请求速率的话,可能会出现同一个IP的用户,频繁调用对应相对耗时的api,也就是利用api的耗时,来在请求速率的限制下,仍然可以影响服务器稳定)
question3:具体的命令的含义是什么?
1ngx_http_limit_req_module
2压缩的作用
3ngx_http_limit_conn_module
4漏桶算法,放nginx中,zone=xxx:10M也就是声明了对应的空间
5存储空间需要根据应用用户量,大概10M==160000Ip