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

nginx代理常用配置

  1. 最简反向代理配置
  在http节点下,使用upstream配置服务地址,使用server的location配置代理映射。
  upstream my_server {
  server 10.0.0.2:8080;
  keepalive 2000;
  }
  server {
  listen 80;
  server_name 10.0.0.1;
  client_max_body_size 1024M;
  location /my/ {
  proxy_pass http://my_server/;
  proxy_set_header Host $host:$server_port;
  }
  }
  通过该配置,访问nginx地址http://10.0.0.1:80/my的请求会被转发到my_server服务地址http://10.0.0.2:8080/。
  需要注意的是,如果按照如下配置:
  upstream my_server {
  server 10.0.0.2:8080;
  keepalive 2000;
  }
  server {
  listen 80;
  server_name 10.0.0.1;
  client_max_body_size 1024M;
  location /my/ {
  proxy_pass http://my_server;
  proxy_set_header Host $host:$server_port;
  }
  }
  那么,访问nginx地址http://10.0.0.1:80/my的请求会被转发到my_server服务地址http://10.0.0.2:8080/my。这是因为proxy_pass参数中如果不包含url的路径,则会将location的pattern识别的路径作为绝对路径。
  2. 重定向报文代理
  即便配置了nginx代理,当服务返回重定向报文时(http code为301或302),会将重定向的目标url地址放入http response报文的header的location字段内。用户浏览器收到重定向报文时,会解析出该字段并作跳转。此时新的请求报文将直接发送给服务地址,而非nginx地址。为了能让nginx拦截此类请求,必须修改重定向报文的location信息。
  location /my/ {
  proxy_pass http://my_server;
  proxy_set_header Host $host:$server_port;
  proxy_redirect / /my/;
  }
  使用proxy_redirect可以修改重定向报文的location字段,例子中会将所有的根路径下的url代理到nginx的/my/路径下返回给用户。比如服务返回的重定向报文的location原始值为/login,那么经过nginx代理后,用户收到的报文的location字段为/my/login。此时,浏览器将会跳转到nginx的/my/login地址进行访问。
  需要注意的是,服务返回的重定向报文的location字段有时会填写绝对路径(包含服务的ip/域名和端口),有时候会填写相对路径,此时需要根据实际情况进行甄别。
  location /my/ {
  proxy_pass http://my_server;
  proxy_set_header Host $host:$server_port;
  proxy_redirect http://my_server/ http://$host:$server_port/my/;
  }
  上述配置便是将my_server服务的根路径下的所有路径代理到nginx地址的/my/路径下。当nginx配置只有一个server时,http://$host:$server_port前缀可以省略。
  3. 报文数据替换
  使用nginx代理最牛(dan)逼(sui)的情况就是http响应报文内写死了服务地址或web绝对路径。写死服务地址的情况比较少见,但也偶尔存在。最棘手的是写死了web绝对路径,尤其是绝对路径都没有公共前缀。举个例子来说:
  一般的web页面会包含如下类似路径:
  /public:用于静态页面资源,如js脚本/public/js,样式表/public/css,图片/public/img等。
  /static:和/public类似。
  /api:用于后台服务API接口。
  /login:用于登录验证。
  其他。
  对于这样的服务,可能的代理配置如下:
  location /my/ {
  proxy_pass http://my_server/;
  proxy_set_header Host $host:$server_port;
  proxy_redirect / /my/;
  }
  location /login/ {
  proxy_pass http://my_server/public;
  proxy_set_header Host $host:$server_port;
  }
  location /public/ {
  proxy_pass http://my_server/public;
  proxy_set_header Host $host:$server_port;
  }
  location /api/ {
  proxy_pass http://my_server/api;
  proxy_set_header Host $host:$server_port;
  }
  由于web页面或静态资源内写死了类似的绝对路径,那么对于用户来说,通过页面内的链接进行跳转时,都会请求到nginx服务对应的路径上。一旦存在另一个服务也包含类似的路径,也需要nginx进行代理,那么矛盾就出现了:访问nginx的同一个路径下的请求究竟转发给哪一个服务?
  要解决这个问题,必须在用户收到报文前,将报文的数据中包含的绝对路径都添加统一的前缀,如/my/public,/my/api,/my/login,这样nginx代理配置则可以简化为:
  location /my/ {
  proxy_pass http://my_server/;
  proxy_set_header Host $host:$server_port;
  proxy_redirect / /my/;
  }
  location /other/ {
  proxy_pass http://other_server/;
  proxy_set_header Host $host:$server_port;
  proxy_redirect / /other/;
  }
  nginx的ngx_http_sub_module模块提供了类似的报文数据替换功能,该模块默认不会安装,需要在编译nginx时添加--with-http_sub_module参数,或者直接下载nginx的rpm包。
  使用sub_filter对数据包进行替换的语法如下:
  location /my/ {
  proxy_pass http://my_server/;
  proxy_set_header Host $host:$server_port;
  sub_filter "href="/" "href="/my/";
  sub_filter "src="/" "src="/my/";
  sub_filter_types text/html;
  sub_filter_once off;
  }
  上述配置会将/my/下的所有响应报文内容的href="/替换为href="/my,以及src="/替换为src="/my,即为所有的绝对路径添加公共前缀。
  注意,如果需要配置多个sub_filter,必须保证nginx是1.9.4版本之上的。

零跑一直在跑向来人们只问前三,不问第四,在车市中,亦是如此。每个月电动车销量发榜,人们总去比较前三的销量如何,三家之间究竟差多少。但销量成绩不是那么好一些车企,鲜少被人提及,比如零跑汽车。一次博弈论的存在时至今日,博弈论已经发展成一门相对成熟和完善的学科。目前,博弈论在多个学科和领域获得了广泛的应用,特别是在生物学经济学计算机科学数学政治军事等学科和领域的表现尤为出色。例如,一些生华为Nova10和荣耀70发布时间基本敲定,选择却纠结了事关华为手机,最近的市场中确实带来了很多好消息,比如国内厂商力通和富满微的5G射频芯片分别可用在5G基站手机等设备上。而且在高性能上芯片上,华为已经计划采用多核架构,用堆叠面积换性手机厂商为降成本阉割4大功能,未来我们还能剩下什么?引言现代社会中,各个国家的科技发展水平都在飞速提升,而手机作为现代人生活中的必需品,手机的更新换代速度更是与日俱增。与传统的功能型手机相比,现代社会中的智能手机能够给予人们更加便捷老米粉的遗憾,MIUI永远有功能没发现,分这5个功能你都发现了吗老米粉的遗憾,MIUI永远有功能没发现,分这5个功能你都发现了吗小米手机的老用户好多都有这样的体验,就是手机用到换机,系统用到换代,后面一看发现还有好多功能没有用到,不是用不到,是国家真的推动,混动车的节奏吗?答案是肯定的!国家因该在大力推行新能源。纯电车是唯一方向吗?混动是另外一种唯一方向吗?氢能源是唯一方向吗?水能源是唯一方向吗?到底什么方向是唯一方向。还是多种方向选一种呢!为什么大NVIDIA开源其Linux内核图形驱动程序NVidia终于在开源驱动程序方面迈出重要一步昨天,NVIDIA发布了一个新的JetsonL4T版本,提供了基于Ubuntu20。04LTS并使用Linux5。10内核的最新样本根php比java的开发效率高在哪?今年刚开始接触Java,正在使用Java做微服务方向的项目,集成了mybatisplus的ORM,首先别的不说,就这个orm让我难受了好长时间,这是个什么玩意,用起来费事的一批,piPhone14新一批渲染图曝光!拒绝刘海屏,全新感叹号设计自从2018年6月份vivo推出升降屏以后,手机行业发生了翻天覆地的变化,传统的屏幕设计直接成为落后。升降屏的设计背后却隐藏着全面屏设计,从当时市场的热度就可以观察到,升降屏推出不背靠腾讯柠萌影视再度冲刺上市过去两年营收利润持续双降本报记者谢若琳4月8日,柠萌影视传媒有限公司(以下简称柠萌影视)再次向港交所递交招股书。2021年1月份,公司曾与中金公司签署上市辅导协议,计划登陆A股,一直没有进展,同年9月份首iPhone14Pro配置规格出炉,iPhone13沦为百元机唱响让路悲歌今日,数码博主ITTechnix曝光了一张iPhone14Pro设置图,曝光图显示,iPhone14Pro采用圆形感叹号打孔屏药丸,取消SIM卡槽,配备更好的摄像头,配备3nmA1
如何让电脑实现秒开机!aigo国民好物固态硬盘P3000成关键是不是很羡慕那些能够秒开机的电脑主机,是不是觉得秒开机的电脑起码需上万?其实不然,想要实现秒开机也很简单,我们只需要换块电脑的硬盘即可,将固态硬盘当主力使用,能有效提高电脑的开机速极客修iPhone大调整下代iPhone电池有望与安卓旗舰机抗衡资讯导读苹果对iPhone大调整这外形喜大普奔!下一代iPhone电池有望与安卓旗舰机抗衡曝iPhone13将提升防水性能水深8米可挺30分钟曝苹果为iPhone13Pro寻找更多未来人类是否会退化?在生物学中没有退化的说法,不管人类社会怎么变化,哪怕是未来机器人替代了大部分需要付出人力的行业,人类体力劳动量迅速降低,人类也还是继续进化。以机械代替人的体力劳动将是人类发展的趋势快要上市,续航305KM配大屏,全车高强度钢,带你看全新宝骏车前言国内的微型新能源车市场目前的销量势头表现得很好,以宏光MINIEV,奇瑞小蚂蚁,欧拉白猫等为代表,它们的一个共同特点就是价格亲民,续航满足家用通勤需求。而接下来带大家看一下一款七夕礼物攻略!最适合送礼的蓝牙耳机推荐马上就七夕情人节了呢,不知道大家除了盘点当天怎么过之外有没有想好送什么礼物了呢?除了送花送口红,我们还可以送数码产品哦,现在蓝牙耳机基本人手一款。不知道你对象有没有呢,如果没有那一用习惯一加之后,就再也回不去了?果粉要说声抱歉了作为一名不安分的果粉,几个星期前我心血来潮把iPhone11卖掉了,换成了一加9Pro,使用一段时间后,说说几句心里话,真的感觉后再也回不去苹果手机了!交互界面更加精美,显示更加出滴滴请耐心,高德很抱歉,网约车客服都是睁眼瞎?打开黑猫投诉,网约车平台相关的百分之四五十都是投诉客服服务不好,不理睬不回复,让用户和司机感受到不公平和不尊重。申诉无门,不得已到第三方平台来说,但解决的还是寥寥。本来就是有问题才地球上所有人一生走过路的长度总和,加起来能否走出银河系?地球上所有人一生走过路的长度总和,加起来能否走出银河系?银河系其实挺大的,早期认为是十万光年,而最新则大约又十五至二十万光年,而地球上的人口现在已经高达78亿多,那么这么多人一辈子我5g手机用的4g套餐,为啥联通总让打开手机5g开关有坑吗?谢邀!我也华为P40Pro,5G手机,移动号码,用的4G套餐,流量5G。我手机开了5G,没坑。说说4G套餐开5G的好处。1,上网速度快。虽然还是4G套餐,上网的确是快了,虽然没有5impala理论impala介绍ClouderaImapala是一款开源的MPP架构的SQL查询引擎,它提供在hadoop环境上的低延迟高并发的BI数据分析,是一款开源与Hadoop高度集成,灵活微软一口气设计了1888个新表情,也太可爱了前段时间世界表情符号日,WorldEmojiDay,微软披露了在Windows11等系统上新的emoji表情符号系统。其中包括基于Fluent流畅设计重新设计的1888个表情符号。