Nginx

一、nginx简介

nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。

nginx的特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

二、nginx优点

  • 高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到2-3万并发连接数
  • 内存消耗少:在3万并发连接下,开启的10个nginx进程才消耗150M内存(15M*10=150M)
  • 配置文件非常简单:风格跟程序一样通俗易懂
  • 成本低廉:nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币
  • 支持Rewrite重写规则:能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组
  • 内置的健康检查功能:如果Nginx Proxy后端的某台Web服务器宕机了,不会影响前端访问
  • 节省带宽:支持GZIP压缩,可以添加浏览器本地缓存的Header头
  • 稳定性高:用于反向代理,宕机的概率微乎其微
  • 模块化设计:模块可以动态编译
  • 外围支持好:文档全,二次开发和模块较多
  • 支持热部署:可以不停机重载配置文件
  • 支持事件驱动、AIO(AsyncIO,异步IO)、mmap(Memory Map,内存映射)等性能优化

三、nginx反向代理

多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时~请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。

客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。

反向代理,“它代理的是服务端”,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

1. 反向代理的作用
  • 保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
  • 负载均衡,通过反向代理服务器来优化网站的负载
2. 正向代理和反向代理的区别
  • 在正向代理中,Proxy和Client同属于一个LAN,隐藏了客户端信息
  • 在反向代理中,Proxy和Server同属于一个LAN,隐藏了服务端信息

四、nginx安装与配置

1. 下载

进入http://nginx.org/en/download.html下载,本人使用的是nginx-1.8.1版本,如图:
在这里插入图片描述

2. 安装
2.1 安装环境

安装nginx需要如下环境:

2.1.1 gcc

编译依赖gcc环境,如果没有gcc环境,需要安装gcc

yum install gcc-c++
2.1.2 PCRE

PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。

yum install -y pcre pcre-devel
2.1.3 zlib

lib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

yum install -y zlib zlib-devel
2.1.4 openssl

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。

yum install -y openssl openssl-devel
2.2 编译安装

nginx-1.8.1.tar.gz拷贝至linux服务器

解压,并进入解压后的文件:

tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1

执行如下命令,配置:

./configure

开始编译和安装:

make
make install

安装成功查看安装目录,如下:
在这里插入图片描述

2.3 启动nginx

启动:

cd /usr/local/nginx/sbin/
./nginx

查看:

ps -aux | grep nginx

在这里插入图片描述

其中13612为Nginx的主进程id,worker process为Nginx的工作进程

2.4 重启nginx
cd /usr/local/nginx/sbin
./nginx -s reload
2.5 测试安装成功

访问对应安装Nginx的linux的ip,出现如下界面即安装成功:
在这里插入图片描述

注意:如果出现访问失败,很可能是因为80端口没有开放,进行如下配置开启端口:
vim /etc/sysconfig/iptables

复制一行,端口改为80,如下:
在这里插入图片描述
重启iptables:

service iptables restart

四、搭建负载均衡

1. 什么是负载均衡

负载均衡:建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

2. 负载均衡的优点

简单的来说。可以减少服务器的压力,将原本一台服务器所要承受的访问量分给了多台,并提高了项目的可用性,当一台服务器挂掉的时候也不会导致整个项目瘫痪。

3. nginx实现负载均衡
3.1 准备工作

nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器。
nginx负载均衡服务器:192.168.14.129
tomcat1服务器:192.168.14.131
tomcat2服务器:192.168.14.134

我们将两个相同的项目分别放到了131与134服务器中,当我们通过129负载访问项目接口时,nginx会自动将请求轮流分配给131与134来执行。

3.2 配置

以vim模式打开nginx.conf配置文件:

cd /usr/local/nginx/conf/
vim nginx.conf

根据上边的需求在nginx.conf文件中配置负载均衡,如下:

#在server上添加此upstream节点
upstream mytomcat{
    #分权 即访问131134的次数比例为11
    server 192.168.14.131:8080 weight=1;
    server 192.168.14.134:8080 weight=1;
    }

    server {
        listen 80;
        server_name localhost;
        #即所有请求都到这里去找分配
        location / {
       #使用mytomcat分配规则,即刚自定义添加的upstream节点
           proxy_pass http://mytomcat;
        }
    }

配置完成,保存并退出,重启nginx。

3.3 测试结果

多次访问此接口http://192.168.14.129/student/getInfo,通过后台日志我们发现两个服务器的接口分别轮流被调用,这样一个简单的负载就搭建完成了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值