范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Nginx

  一、代理服务
  比较容易理解吧,简单来说。客户端访问服务器并不是直接访问的,而是通过中间代理服务器,代理服务器再去访问服务器。就像一个中转站一样,无论什么,只要从客户端到服务器,你就要通过我。  一)正向代理
  正向代理,就是代理服务器为客户端代理,也就是说,服务器并不知道真实的客户端是谁,而是通过代理服务器把请求发送给真实的服务器。比如,通过公司网络访问外网百度,那么公司的代理服务器就会代理你的主机,访问百度网站。百度服务器无法获得你个人的真实主机ip。
  就像上图展示的那样。web1、web2就是你在公司内的个人主机ip,然后通过公司的Nginx代理服务器,访问外部网络。
  语法: Syntax: proxy_pass URL Default: -- Context: server,location
  实践:
  删除之前的配置,然后我们加下正向代理的配置:resolver 8.8.8.8; #谷歌的域名解析地址 location / {     # $http_host 要访问的主机名 $request_uri请求路径     proxy_pass http://$http_host$request_uri; }
  这样,Nginx的正向代理配置其实就ok了,哦对,别忘了重载Nginx服务器。为了我们可以用本地测试,还需要一些额外的修改。Windows系统,修改下本机的hosts文件,地址在:C:WindowsSystem32driversetc。里面有个hosts,通过编辑器打开,添加如下内容:ip(你服务器的ip)(空格)域名(随便一个域名)
  我的添加完了之后是这样的:
  然后,你可以正常访问百度,或者其他域名地址,或者也可以通过curl来访问。但是这样我们实际上比较无感,所以我们来看下Nginx日志,日志在/var/log/Nginx/access.log中。二)反向代理
  反向代理,简单来说就是代理服务器代理的是服务器,客户端并不知道真正的服务器是什么。
  Nginx配置如下:
  location ~ ^/api {     proxy_pass http://localhost:3000;     proxy_redirect default; #重定向      proxy_set_header Host $http_host;        #向后传递头信息     proxy_set_header X-Real-IP $remote_addr; #把真实IP传给应用服务器      proxy_connect_timeout 30; #默认超时时间     proxy_send_timeout 60;    # 发送超时     proxy_read_timeout 60;    # 读取超时       proxy_buffering on;             # 在proxy_buffering 开启的情况下,Nginx将会尽可能的读取所有的upstream端传输的数据到buffer,直到proxy_buffers设置的所有buffer们 被写满或者数据被读取完(EOF)     proxy_buffers 4 128k;           # proxy_buffers由缓冲区数量和缓冲区大小组成的。总的大小为number*size     proxy_busy_buffers_size 256k;   # proxy_busy_buffers_size不是独立的空间,他是proxy_buffers和proxy_buffer_size的一部分。Nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。     proxy_buffer_size 32k;          # 用来存储upstream端response的header     proxy_max_temp_file_size 256k; # response的内容很大的 话,Nginx会接收并把他们写入到temp_file里去,大小由proxy_max_temp_file_size控制。如果busy的buffer 传输完了会从temp_file里面接着读数据,直到传输完毕。 }
  然后需要我们在服务器上安装一下node,简单来说通过下载node官网的linux版node的二进制包,通过ftp传输到服务器。然后解压缩node包,然后配置node环境变量即可。这个就不多说了,大家可以百度一下。
  然后我们在服务器新建一个node的http服务,端口号3000、4000、5000,对,创建三个文件。是在服务器上哦,实际上跟在本地没啥区别。
  然后我们通过浏览器,你的ip/api/xxx就可以代理到3000端口的服务了。哦对,别忘了在服务器启动你的node服务。二、负载均衡
  我们先来看张图吧:
  使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。通过负载均衡调度服务器,将来自浏览器的访问请求分发到应用服务器集群中的任何一台服务器上,如果有更多的用户,就在集群中加入更多的应用服务器,使应用服务器的负载压力不再成为整个网站的瓶颈。
  那么下面,我们来看下,如何通过Nginx服务器,配置集群。首先,我们需要在Nginx服务器,通过不同的端口号,创建几个node服务。node服务的代码类似这样:
  var http = require( "http" ); var server =http.createServer( function ( request ,response ){     response.end("server3 000"); } ); server.listen( 3000 ,function(){ console.log( "HTTP服务器启动中,端口:3000" ); });
  然后,Nginx中可以这样配置:
  http{ upstream zhufeng {     server 127.0.0.1:3000 weight=10;     server 127.0.0.1:4000;     server 127.0.0.1:5000; }  server {         location / {             proxy_pass http://zhufeng;         }     } }
  然后呢,安装一下pm2:yum install pm2 -g
  如果太慢的话,可以试试淘宝源。这里就不说怎么配置了哦。然后安装好pm2后,通过pm2启动各个node服务。pm2是一个node应用的进程管理器。
  然后,可以通过以下命令来启动和查看node服务进程:# 启动node服务 pm2 start xxx.js name xxx # 查看当前服务 pm2 list
  后端服务器调试状态:
  状态
  描述
  down
  当前的服务器不参与负载均衡
  backup
  当其它节点都无法使用时的备份的服务器
  max_fails
  允许请求失败的次数,到达最大次数就会休眠
  fail_timeout
  经过max_fails失败后,服务暂停的时间,默认10秒
  max_conns
  限制每个server最大的接收的连接数,性能高的服务器可以连接数多一些
  例子:upstream webserver{   server localhost:3000 down;   server localhost:4000 backup;   server localhost:5000 max_fails=1 fail_timeout=10s; }
  分配方式:
  类型
  种类
  轮询(默认)
  每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除
  weight(加权轮询)
  指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况
  ip_hash
  每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
  least_conn
  哪个机器上连接数少就分发给谁
  url_hash(第三方)
  按访问的URL地址来分配 请求,每个URL都定向到同一个后端 服务器上(缓存)
  fair(第三方)
  按后端服务器的响应时间来分配请求,响应时间短的优先分配
  正定义hash
  hash自定义key
  例子:
  upstream webserver{   ip_hash;   server 127.0.0.1:3000; } upstream webserver{   least_conn;   server 127.0.0.1:3000; } upstream webserver{   url_hash;   server 127.0.0.1:3000; } upstream webserver{   fair;   server 127.0.0.1:3000; } upstream webserver{   hash $request_uri;   server 127.0.0.1:3000; }
  三、其他一)缓存
  首先啊,缓存有很多种,比如之前学过的浏览器缓存,还有应用服务器缓存,代理缓存,客户端缓存等等等等。我们可以在Nginx中使用prxoy_cache来设置代理缓存。http{       # 缓存路径 目录层级 缓存空间名称和大小 失效时间为7天 最大容量为10g     proxy_cache_path /data/Nginx/cache levels=1:2 keys_zone=cache:100m inactive=60m max_size=10g;   }
  稍微复杂点的方式如下:
  if ($request_uri ~ ^/cache/(login|logout)) {       set $nocache 1;     }     location / {        proxy_pass http://webserver;     }     location ~ ^/cache/ {      proxy_cache cache;      proxy_cache_valid  200 206 304 301 302 60m;   # 对哪些状态码缓存,过期时间为60分钟      proxy_cache_key $uri;  #缓存的维度      proxy_no_cache $nocache;      proxy_set_header Host $host:$server_port;  #设置头      proxy_set_header X-Real-IP $remote_addr;   #设置头      proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;   #设置头      proxy_pass http://127.0.0.1:6000;     }
  然后呢,上面的各个字段的含义如下:
  键值
  含义
  proxy_cache
  使用名为cache的对应缓存配置
  proxy_cache_valid 200 206 304 301 302 10d;
  对httpcode为200的缓存10天
  proxy_cache_key $uri
  定义缓存唯一key,通过唯一key来进行hash存取
  proxy_set_header
  自定义http header头,用于发送给后端真实服务器
  proxy_pass
  指代理后转发的路径,注意是否需要最后的/二)location
  它的使用其实就是正则表达式,但是语法规则会有些特性,正则我就不在这里多说,咱们直接看下location的语法:location仅匹配URI,忽略参数前缀字符串常规= 精确匹配^~ 匹配上后则不再进行正则表达式的匹配正则表达式~ 大小写敏感的正则表达式匹配~*忽略大小写的正则表达式匹配内部调转用于内部跳转的命名location @Syntax location [=|~|~*|^~] uri {...}        location @name{...} default - Context server,location
  匹配的优先级,按照上面的顺序,从上到下,最上面的优先级最高,我们来看个实际的例子:
  location ~ /T1/$ {     return 200 "匹配到第一个正则表达式"; } location ~* /T1/(w+)$ {     return 200 "匹配到最长的正则表达式"; } location ^~ /T1/ {     return 200 "停止后续的正则表达式匹配"; } location  /T1/T2 {     return 200 "最长的前缀表达式匹配"; } location  /T1 {     return 200 "前缀表达式匹配"; } location = /T1 {     return 200 "精确匹配"; }
  /T1     // 精确匹配 /T1/    // 停止后续的正则表达式匹配 /T1/T2  // 匹配到最长的正则表达式 /T1/T2/ // 最长的前缀表达式匹配 /t1/T2  // 匹配到最长的正则表达式三)rewrite
  可以实现URI的重写和重定向,它的用处有很多,常用于URL页面的跳转,兼容旧版本,SEO优化(伪静态),维护(后台维护、流量转发),安全(伪静态)等,它的语法是这样的:syntax: rewrite regex replacement [flag] Default: — Context: server, location, if如果正则表达式(regex)匹配到了请求的URI(request URI),这个URI会被后面的replacement替换rewrite的定向会根据他们在配置文件中出现的顺序依次执行通过使用flag可以终止定向后进一步的处理
  一个例子:rewrite ^/users/(.*)$ /show?user=$1? last;=
  flag,标志位是标识规则对应的类型。
  flag
  含义
  last
  先匹配自己的location,然后通过rewrite规则新建一个请求再次请求服务端
  break
  先匹配自己的location,然后生命周期会在当前的location结束,不再进行后续的匹配
  redirect
  返回302昨时重定向,以后还会请求这个服务器
  permanent
  返回301永久重定向,以后会直接请求永久重定向后的域名1)last结束当前的请求处理,用替换后的URI重新匹配location  可理解为重写(rewrite)后,发起了一个新请求,进入server模块,匹配location如果重新匹配循环的次数超过10次,Nginx会返回500错误返回302 http状态码浏览器地址栏显示重定向后的url2)break结束当前的请求处理,使用当前资源,不再执行location里余下的语句返回302 http状态码浏览器地址栏显示重定向后的url3)redirect临时跳转,返回302 http状态码0浏览器地址栏显示重地向后的url4)permanent永久跳转,返回301 http状态码;浏览器地址栏显示重定向后的url
  例子如下:
  location ~ ^/break {     rewrite ^/break /test break;     root /data/html; }  location ~ ^/last {     rewrite ^/last /test last; }  location /test {       default_type application/json;       return 200 "{"code":0,"msg":"success"}"; }  location ~ ^/redirect {  rewrite ^/redirect http://www.baidu.com redirect; } location ~ ^/permanent {  rewrite ^/permanent http://www.baidu.com permanent; }
  可以通过curl来测试一下:curl http://115.29.148.6/break test curl http://115.29.148.6/last {"code":0,"msg":"success"} curl -vL http://115.29.148.6/redirect curl -vL http://115.29.148.6/permanent
  站在巨人的肩膀上,希望我可以看的更远。
  来源:https://www.cnblogs.com/zaking/p/14999350.html

每月3500块,晚12点才能下班北京环球影城背面的人间真实刚过去的十一国庆假期,北京环球影城无疑为最火的流量之王,多条动态接连登上微博热搜,引发全网关注和热议。流量背后是一个个真实的人。他们是景区游客景区工作人员附近酒店人员在北京环球影城欧洲穷国之北马其顿现状,带你看看真实的北马其顿1,北马其顿是一个位于欧洲东南部巴尔干半岛中部的南欧内陆国,面积25713平方千米,人口208万,全国共设85个地方行政区。2,斯科普里是北马其顿首都和最大都市,瓦尔达尔河穿城而过首秀惊艳!天才榜眼秀砍32146,杜兰特曾言联盟无人能防住他对于比斯利这名球员,相信很多球迷都不会感到陌生,他是08年的榜眼秀,在当时是仅次于罗斯的新星。不过之后的比斯利因为性格和伤病的缘故,慢慢地就从NBA淡出了,而他现在效力的是波多黎各中国女排主帅人选敲定,恭喜郎平接到新邀请,现身北京授课中国女排主帅人选敲定,恭喜郎平接到新邀请,排协骑虎难下国庆节假日结束过去的第三天,中国女排主帅人选敲定在即,此刻,也要恭喜郎平接到新邀请,获得了新岗位,郎平继出现在社交媒体上割甘蔗地下恋憋坏了!中国奥运双金王狂晒漂亮女友又牵手,又穿情侣装北京时间10月9日,中国跳水奥运冠军谢思埸再次晒出了自己的女友,自从奥运结束后,谢思埸被之前的地下恋情或许憋坏了,狂晒女友,狂撒狗粮,幸福不已。谢思埸的巅峰在东京奥运周期到来,谢思金球奖评选暗含倾向性梅西今年拿奖已板上钉钉谁能捧杯?当梅西的球迷还在愤愤不平于拉波尔塔接受采访时所说的我确实希望在最后时刻情况会发生变化,梅西告诉我们他愿意免费为我们踢球,至少还有一个好消息正在来的路上。当地时间10月8日刚刚!多名球员被逮捕!包括湖人冠军球员北京时间10月8日据美联社官方消息18名前NBA球员被控通过虚报医疗和牙科费用从联盟健康和福利计划中非法获利约250万美元据报道美国联邦调查局特工已在全国逮捕了15名前球员及其中一一夜3消息!广东宏远官宣喜讯,辽篮续约福格,马布里拒绝辞职北京时间10月9日,CBA正式官宣第一阶段的赛程,卫冕冠军广东宏远将于10月16日迎来赛季首战。宏远在8号也完成了新赛季的体测,此前有报道称宏远的杜润旺和张明池因为伤病而无缘参加本今天看完德国队的比赛我才知道我为什么这么生气首先我要和大家说一下,我是个德国队的忠实球迷。自从我认识足球开始,我就从来也没有改变过,当然我心中的球队还有中国队,这两支队伍一直伴随着我走到今天。先说说德国队,有起有落,我觉得这广东宏远好消息!2。24米内线新援确认出战新赛季,阿联接班人来了北京时间10月9日,距离CBA新赛季正式开打只剩下几天的时间,根据原定计划,广东宏远在8号完成体测后,将于10号举行简单的出征仪式,正式启程出发,前往新赛季的举办地诸暨。虽说在出发繁花三美争艳,谁成胡歌官配CP?网友更看好唐嫣时隔多年,胡歌与唐嫣终于再度同框。近日,有关王家卫导演新剧繁花即将开播的消息已被网友炒得沸沸扬扬。能让众网友疯狂,自然是因新剧阵容强大,且改编自上海名作家金宇澄的同名小说,得过鲁迅
原来,这才是最适合中年女人的打扮短上衣膝下裙,年轻好几岁女人这一生就应该活的多彩一点,既可温柔也要热烈野性,不被年龄所束缚,也不被外界的声音所影响,就算是踏入中年,你照样可以活得洒脱随性。年龄不过是一个数字,中年女人最应该关注的就是气质Dunk海盐蓝成2023首匹黑马!3招教你如何避雷!兔年到了,你是否穿上了自己喜欢的新鞋了呢?最近,小编发现,得物上有一双很火的鞋NikeDunkLowIvoryHyperRoyal白蓝配色,不仅有2。7万名得物er已经入手,更有6POP流行趋势网风衣女装TOP款式热搜排行榜综述报告数据基于7月份用户下载互动数据榜单TOP100,其中新锐设计占据大部分比率,设计点上环绕这解构拼接荷叶边装饰等工艺应用,应用帽口延长浮水等部位塑造出披肩视觉的风衣比率12,补水抗皱眼霜推荐有效促进眼部胶原的生长,改善眼部暗沉粗糙补水抗皱眼霜推荐有效促进眼部胶原的生长,改善眼部暗沉粗糙!Swisse摩洛哥坚果抗衰老眼霜虽然说名字是抗衰老眼霜,但从成分配比来说去黑眼圈效果可能看的更明显一点。成分表第一位就是芦DIOR用一场高订秀告诉我们WhoisJosephineBaker在一群花花绿绿夸张廓形的高订发布秀中,DIOR如一股清流出现在大众视野中。正如DIOR女装创意总监MariaGraziaChiuri所说,这一高订系列是奢华20年代的当下演绎,更干人类会研制出能学习的电脑程序吗?用过电脑的人都知道,电脑其实很笨,它虽然能保存一整部工具书,却不理解书中的内容。它虽然能识别通过麦克风输入的词语,并在屏幕上正确显示出来,却不知道词语的意思。几十年来,信息学家在人观表演,赏民俗南宁园博园热度爆棚,拉满新年仪式感!1月22日至27日(农历正月初一至初六),南宁园博园举办卯兔迎新春欢乐闹园博新春嘉年夜万国灯笼会春节系列活动。本次春节系列活动结合民俗文化表演与灯光夜游等元素,通过形式丰富的表演互大年台儿庄重逢渔灯巷,渔灯巷兔年新春贺年汇献上文旅大餐渔灯迎春萌宠乐园篝火派对舞蹈演艺青春音乐会戏曲展演记者获悉,自腊月二十五日起,以大年台儿庄重逢渔灯巷为主题的渔灯巷兔年新春贺年会系列活动陆续推出,各式各样富有特色的贺岁活动吸引来自她们把仙女管全部插入体内,最后发生了什么?老阿叶句子欣赏总有一天,你会回头看看那些经历过的人和事,当时再大的事,现在看来好像也不过如此,你甚至会觉得自己当时太小题大做,太幼稚,根本没有什么是过不去的,也根本没有什么人是离不今日大寒逢春节,吃这四样,健脾开胃,春节吃开怀,新年好脾胃大寒进补宜封藏,但进补到大寒时节时,大补食物就要偶尔吃了,同时为了逐渐适应春天舒畅升发的特点,可适当吃些白菜胡萝卜芹菜油菜胡萝卜等蔬菜。此外,今年大寒,恰逢春节,春节期间,鱼肉等不2023,你要学会好好珍惜罗曼。罗兰曾说昨天唤不回来,明天还不确定,能确有把握的就是今天。人生其实没有永远,来日也并不方长。2023,一定要珍惜眼前,活好当下!珍惜眼前人,别追悔莫及泰戈尔曾说过春天把花开过