Nginx学习

一、nginx的基本概念

1、nginx是什么,能做什么事情

1.1 nginx概述

        nginx是一个高性能的HTTP和反向代理服务器,特点是占用内存少,并发能力强。nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接

2、反向代理

2.1 正向代理

在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问(正向代理代理的是客户端,服务器不知道实际的客户端是谁)

2.2 反向代理

       反向代理代理的是服务器,客户端对反向代理是无感知的,我们只需要将请求发送到反向代理服务器,由反向代理服务器取选择目标服务器再返回给客户端,客户端不知道真正的后台服务器是谁,暴露的是代理服务器的地址。

3、负载均衡

       在服务器访问量很大的情况下,单个服务器无法承担那么高的并发数,因此我们增加服务器的数量,然后将请求分发到多个服务器上,将原先请求集中在单个服务器上改为将请求分发刀多个服务器上,这就是负载均衡。

4、动静分离

     为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力

二、nginx安装、命令和和配置文件

1、在linux系统中安装nginx

1.1  安装依赖包:yum -y install make  zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre

1.2 安装nginx:默认安装在/usr/local目录下

        (1) 官网下载nginx安装包上传至linux服务器

        (2) 解压:tar -zxvf nginx-1.12.2.tar.gz

        (3) 进入目录执行./configure

        (4) make && make install

2、nginx常用的命令

         2.1 查看版本号 :

  

        2.2 启动 | 停止 | 重加载

# cd /usr/local/nginx/sbin/
# ./nginx                        #启动
#./nginx -s stop                 #停止
#./nginx -s reload               #重加载

        2.3 语法测试

3、nginx配置文件

3.1 全局块

       从配置文件开始到events块之间的内容,主要是设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行nginx服务器的用户(组)、允许生成的work_process数,进程pid存放路径、日志存放路径、类型已经配置文件的引入

3.2 events块

        events块涉及到的指令主要影响nginx服务器与用户的网络连接,比如worker_connections 1024,表示支持的最大连接数为1024个

3.3 http块

       (1)http全局块

                   文件引入、MIME-TYPE类型定义、日志自定义、连接超时时间

       (2)server块

                   配置监听端口,服务器名称等

三、nginx配置的实例

1、实现反向代理

实例1:

       需求:浏览器输入www.test.com ,跳转到tomcat的默认界面

       准备工作:windows或linux中安装好tomcat服务器,使用默认端口8080访问默认页面

步骤:

1.1、在windows中配置IP地址与域名的对应关系,修改C:\Windows\System32\drivers\etc下的hosts文件

1.2、在nginx中配置请求转发的配置

1.3、测试nginx语法

测试成功之后,在/usr/local/nginx/sbin下,执行./nginx 启动nginx

1.4、在浏览器中输入ip地址测试,发现此时页面已经被转发到172.18.51.193(安装tomcat的windows主机)的8080端口

在浏览器输入域名访问:

实例2、实现不同上下文转发

输入http://192.168.148.138/edu/      转发到172.18.51.193:8080端口

输入http://192.168.148.138/vod/      转发到192.168.148.138:8081端口

1.1、准备工作,安装两个tomcat,并修改其中一个的默认端口8081

1.2、创建访问的页面:

1.3、配置nginx


 

# cd /usr/local/nginx/sbin 
# ./nginx -t                   #检测语法错误,测试成功才能重启
# ./nginx -s reload            #nginx重新加载

   1.4、访问测试

  

2、nginx实现负载均衡

(1)实现效果:地址栏输入ip地址http://192.168.148.138/edu/a.html实现负载均衡效果,转发到后台服务器8080和8081端口中去

(2)准备工作:准备两台tomcat服务器,发布不同页面以作区分

()

(3) 配置nginx负载均衡

(4)测试

浏览器输入: http://192.168.148.138/edu/a.html,刷新,会发现两个不同页面交替出现

补充:nginx负载均衡策略

(1)轮询(默认):每个请求按每个请求按时间顺序逐一分配到不同的后端服务器,如果服务器down机能自动剔除。

(2)weight(权重):默认值为1,权重越高被分配的客户端越多,写法:weight=3

(3)ip_hash:每个请求按照ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题

(4)fair:按照后端服务器的响应时间来分配请求,响应时间短的优先分配

3、nginx实现动静分离

(1)准备静态资源

# cd /
# mkdir -p /data/www                  #创建之后上传几个html文件
# mkdir -p /data/images               #创建之后上传几个图片

(2)nginx配置

其中autoindex on参数是列出当前路径下的文件。

检查语法是否正确,并启动nginx,浏览器输入ip地址进行测试

 

四、nginx配置高可用集群

在两台机器上安装nginx和keepalived,配置keepalived的配置文件keepalived.conf

五、nginx原理

1、master-worker机制的好处

(1)可以使用nginx -s reload,利用nginx进行热部署

(2)每个worker是一个独立的进程,如果其中有worker出现问题,其他worker可以进行争抢,实现请求过程,不会造成服务中断

2、设置多少个worker合适:

worker数和服务器的cpu数相等最为适宜

nginx和redis类似,都采用io多路复用机制,每个worker都是一个独立的进程,但是每个进程里只有一个主线程

3、连接数worker_connection

(1):发送请求,占用2或4个

(2):nginx有一个master,四个worker,每个worker支持最大的连接数为1024,支持多大的并发数?

         普通静态访问的最大并发数是:worker_connection*worker_process/2.如果是HTTP作为反向代理来说,最大并发数量应该是worker_connection*worker_process/4

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值