Nginx简介

本文介绍了Nginx作为轻量级Web服务器的功能,包括其在反向代理、负载均衡和动静分离方面的应用。在反向代理中,Nginx隐藏了真实服务器地址,通过配置实现请求转发。负载均衡则通过策略将请求分发到多个后端服务器,确保服务高可用。此外,动静分离利用Nginx将动态和静态请求分发到不同服务器,优化系统性能。
摘要由CSDN通过智能技术生成

1. Nginx概述

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。它可以提供正向代理、反向代理、负载均衡、动静分离等功能。

nginx通过配置文件来配置功能,路径一般是 /usr/local/nginx/conf/nginx.conf

配置文件的内容分为三部分

  • 全局块:配置服务器整体的指令,nginx进程pid存放路径,日志存放路径,配置文件引入等。比如多少个工作进程 worker_processes
  • events:配置影响nginx服务器或与用户的网络连接。用户连接数 worker_connections
  • http:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
    • server块: 配置虚拟主机的相关参数,一个http中可以有多个server

2. 正向代理

通过客户端配置代理服务器,访问特定网站。比如,通过配置VPN客户端,连接远程主机,访问google,或者通过跳板机访问公司内网主机。以上两种都是典型的正向代理。

3. 反向代理

与正向代理相同的是,都是代理服务。不同的是,反向代理暴露的是代理服务器的地址,真实服务器的地址对用户而言是不知道的。用户只需要知道代理服务器的地址即可。

比如现在有nginx服务 111.229.176.xxx:9001, 通过如下配置在访问http://111.229.176.xxx:9001/demo1时,会转发到8081的服务上,而访问http://111.229.176.xxx:9001/demo2时,会转发到8080的服务上。这就是最基本一种反向代理。

    server {
        listen       9001;
    #    listen       somename:8080;
        server_name  111.229.176.xxx;

        location ~ /demo1/ {
            proxy_pass http://127.0.0.1:8081;
        }
        location ~ /demo1/ {
            proxy_pass http://127.0.0.1:8080;
        }
    }

4. 负载均衡

负载均衡,英文名称为Load Balance,其含义就是指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行。nginx可以将用户请求分发到多个服务器上,避免单一服务器负载过重,响应不及时的情况。如下简单配置,当浏览器中输入http://111.229.176.xxx:9001时,请求会根据负载均衡策略转发到8080或者8081的服务上。

    upstream myserver {
        server 111.229.176.212:8080 weight=2;
        server 111.229.176.212:8081 weight=1;
    }


    server {
        listen       9001;
    #    listen       somename:8080;
        server_name  111.229.176.xxx;

        location ~ / {
            proxy_pass http://myserver;
            root html;
            index index.html index.htm;
        }
    }

Nginx的负载均衡策略分为以下几种

  • 轮询:每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
  • 轮询+权重:由于每台真实服务器的性能或者说处理能力不一样,那么处理能力强的服务器应该设置更大的权重,weight 代表权重默认为 1,权重越高被分配的客户端越多。
  • ip哈希:对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。 
  • fair:按照响应时间来分配请求,后端服务器响应时间短的优先分配。

5. 动静分离

Nginx 动静分离简单来说就是把动态跟静态请求分开,静态请求比如请求图片什么的,访问静态资源服务器,动态请求比如注册用户发到动态服务器 (tomcat服务器)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值