nginx常用功能

nginx常用功能

一、反向代理

反向代理简介

反向代理是指代理服务器来接受连接请求,然后将请求转发给服务器,并将服务器上得到的结果返回给请求连接的客户端。反向代理是对服务端透明的,对客户端非透明的,客户端不知道访问的是代理服务器,而服务端知道代理服务器在为它代理。

配置实例

        location /bd {  
          proxy_pass   https://www.baidu.com/;
        }  
        # 所有 /auth-api 下的接口访问都代理到本地的 8010 端口  
        # 例如你本地运行的 java 服务的端口是 8010,接口都是以 /api 开头  
        location /auth-api {
          proxy_pass http://localhost:8010/auth-api;
        }   

二、HTTP服务器

HTTP服务器简介

nginx本身也是一个web服务器,可以使用nginx处理静态资源,使用反向代理处理动态资源,动态和静态的请求分开

静态配置实例

  location / {  
      root   /usr/local/share/html;  
      index  index.html;  
  }   

访问IP就会访问到/usr/local/share/html/index.html页面

动静分离配置实例

# 所有静态请求都由nginx处理,存放目录为 html  
location ~ \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {  
    root    /usr/local/share/html;  
    expires     10h; # 设置过期时间为10小时  
}  

# 所有动态请求都转发给 tomcat 处理  
location ~ \.(jsp|do)$ {  
    proxy_pass  127.0.0.1:8080;  
}  

访问.jsp|do文件时会访问到本机的tomcat服务8080端口上,访问.gif|jpg等文件时则访问到html存放的文件。

三、负载均衡

负载均衡简介

负载均衡就是nginx将请求按规则分摊到多个服务器上进行执行,减少单台服务器的压力。以下是负载均衡模式:

1、轮询(默认)

upstream gateway {
  server localhost:8010;
  server localhost:8011;
}
server {
	listen	80;
	server_name	localhost;
	location /api/ {
		rewrite  ^/api/(.*)$ /$1 break;
		proxy_pass http://gateway;
	}
}

每个请求将按时间顺序逐一分配到不同的后端服务器,如果服务器无法访问,则自动剔除

2、权重

upstream gateway {
  server localhost:8010 weight=7;
  server localhost:8011 weight=3;
}

指定轮询几率,weight和访问时间成正比,服务器性能优越则权重配比越高,访问10次则7次8080,3次8011。

3、ip_hash

upstream gateway {
  ip_hash;
  server localhost:8010 weight=7;
  server localhost:8011 weight=3;
}

每个请求安装发起客户端IP的hash结果进行匹配,同一个IP匹配一个服务器,有效解决了session的问题

4、fair( upstream_fair模块 )

upstream gateway {
  ip_hash;
  server localhost:8010 weight=7;
  server localhost:8011 weight=3;
}

后端相应速度分配的请求,响应时间短则优先分配,响应时间长效率短分配到的请求少。

5、url_hash()

upstream gateway {
  hash $request_url;
  hash_method crc32;
  server localhost:8010 weight=7;
  server localhost:8011 weight=3;
}

按照访问的url的hash结果分配请求,每个请求的url会指向后端固定的某个服务器,可以在Nginx作为静态服务器的情况下提高缓存效率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx常用的插件有ngx_http_realip_module、ngx_http_dyups_module和balancer_by_lua Consul等。ngx_http_realip_module插件用于在Nginx代理服务器中将请求的原始来源地址编码进特殊的HTTP请求头,并恢复这些地址,以便后续处理阶段将请求视为直接来自原始地址。ngx_http_dyups_module插件用于动态更新Nginx的上游服务地址列表,无需重启Nginx。balancer_by_lua Consul是用来解决高并发限流的问题的,它可以通过Consul进行配置,并实现负载均衡和限流功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Nginx中的部分插件示例](https://blog.csdn.net/qq_41056224/article/details/106196998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [3.2.5.4 Nginx实用插件](https://blog.csdn.net/Larry_zhu_123/article/details/118104328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Nginx实用插件](https://blog.csdn.net/qq_33373609/article/details/121108724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值