1.什么是Nginx?
Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。
Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。
2.Nginx属性
1.反向代理
了解反向代理之前先了解正向代理是什么。正向代理就是当我们访问其他网页时,在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网的访问
(1)正向代理
(2)反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就能访问。我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
2.负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
Nginx分配服务器的策略:
第一种:轮询(默认)
每个请求按照时间顺序分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
第二种:weight权重
weight代表权重,默认为1,权重越高被分配客户端就越多。
在nginx.conf里面配配置
upstream server_pool{
server 192.168.xx.xxx:8080 weight=10;
server 192.168.xx.xxx:8081 weight=10;
}
第三种ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定一个后端服务器,可以解决session的问题。
upstream server_pool{
ip_hash
server 192.168.xx.xxx:8080;
server 192.168.xx.xxx:8081;
}
第四种fair(第三方)
按后端服务器的响应时间来分配请求,响应时间段的优先分配
upstream server_pool{
server 192.168.xx.xxx:8080;
server 192.168.xx.xxx:8081;
fair;
}
3.动静分离
什么是动静分离?Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求跟静态请求分来,可以理解成使用Nginx处理静态页面,Tomcat处理动态页面。
第一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
另一种方法就是动态跟静态文件混合在一起发布,通过nginx来分开。
3. Nginx的安装
1.使用远程的连接工具连接linux操作系统
2.安装
(1)安装pcre依赖
把安装包压缩文件引入linux中,进入解压之后的目录,使用make&&make install,安装之后使用命令,查看版本号 pcre -config -version
(2)安装oenssl,zlib 、 gcc 依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
(3)安装nginx
使用命令解压 ./configure
make && make install
进入目录 /usr/local/nginx/sbin/nginx 启动服务
4.Nginx操作的常用命令
1.使用nginx操作命令前提条件:必须进入到nginx的目录
/usr/local/nginx/sbin
2.查看nginx的版本号
./nginx -v
3.启动nginx
在/usr/local/nginx/sbin 目录下 ./nginx
4.关闭nginx
在/usr/local/nginx/sbin 目录下 ./nginx -s stop
5.重新加载nginx
在/usr/local/nginx/sbin 目录下 ./nginx -s reload