Hello~大家好,这里是KOKO!
众所周知,Nginx是一个高性能的HTTP和反向代理web
服务器,同时也提供了IMAP/POP3/SMTP
服务。本篇文章则讲述Nginx的那些事。
Nginx是高性能
的HTTP
和反向代理
服务器。
特点:
占有内存少
并发能力强
事实上,Nginx的并发能力确实在同类型的网页服务器中表现良好
Nginx专为性能优化
而开发,最高性能可达50000个
并发数。
用户通过代理服务器
(浏览器中配置)访问局域网外的Internet。
用户访问反向代理服务器
,再由反向代理服务器根据请求访问不同的tomcat。
反向代理暴露的是服务器地址
,隐藏的是真实服务器IP地址。
当用户向服务器提交过多请求
时,单个服务器解决不了如此多的请求,于是我们增加服务器的数量
,并将请求分发到各个服务器上
。将负载分发到不同的服务器,也就是我们所说的负载均衡
。
为了加快网站的解析速度
,我们可以把动态页面
和静态页面
由不同的服务器来解析
。这样,不仅可以加快解析速度,还可以降低原来单个服务器的压力
。
Nginx在Windows系统也可以使用,只是在Windows系统下发挥的效用不如Linux系统下能发挥地更全面。因此,本节介绍在Linux操作系统下的安装。
Nginx安装时还需要安装依赖才能正常运行,因此总共需要安装以下素材:
pcre
openssl
zlib
nginx
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.45.tar.gz
官网:http://www.pcre.org/
最新版下载地址:https://sourceforge.net/projects/pcre/files/
下载下来后,通过xshell
或者xftp
传到虚拟机Linux系统的目录下。
解压:
tar -zxvf pcre-8.45.tar.gz
解压后的目录为pcre-8.45
。
然后进入到该目录:
cd pcre-8.45
进行配置、编译、安装;
配置:
./configure 或 ./config
编译及安装
make && make install
安装完后,我们可以查看版本号,看我们是否安装成功:
pcre-config --version
wget http://www.openssl.org/source/openssl-3.0.1.tar.gz
官网:http://www.openssl.org
最新版下载地址:https://www.openssl.org/source/
解压:
tar -zxvf openssl-3.0.1.tar.gz
解压后的目录为openssl-3.0.1
。
然后进入到该目录:
cd openssl-3.0.1
进行配置、编译、安装;
配置:
./configure 或 ./config
编译及安装
make && make install
yum -y install make zlib zlib-devel gcc-c++ libtool openssl-devel
wget http://www.zlib.net/zlib-1.2.3.tar.gz
wget http://nginx.org/download/nginx-1.21.6.tar.gz
命令下载下来的Nginx,默认在/src/nginx
位置处。
官网:http://nginx.org
最新版下载地址:http://nginx.org/en/download.html
解压:
tar -zxvf nginx-1.21.6.tar.gz
解压后的目录为nginx-1.21.6
。
然后进入到该目录:
cd nginx-1.21.6
进行配置、编译、安装;
配置:
./configure 或 ./config
编译及安装
make && make install
在我们彻底安装成功后,在usr
会多出来一个文件夹/local/nginx
,在/nginx
中有/sbin
,其中有启动脚本
。
前提条件——一定要进入Nginx的目录中去使用:/usr/local/nginx/sbin
。
./nginx -v
./nginx
./nginx -s stop
./nginx -s reload
/usr/local/nginx/conf/nginx.conf
分为三部分:
全局块
从配置文件开始到events
块之间的内容;
主要会设置一些影响Nginx服务器整体运行的配置指令
;
eg:worker_processes 1
:work_processes值越大,可以支持的并发处理器越多。
events块
涉及的指令主要影响Nginx服务器与用户的网络连接
;
eg:worker_connections 1024
:支持的最大连接数。
http块
Nginx服务器配置中最频繁的部分;
http全局块;
server块:server全局块、location块;
多个worker进行竞争工作,对每个任务进行争抢,再实现。
①可以使用nginx -s reload
热部署,利于nginx进行热部署操作;
②每个worker是独立的进程,如果有其中的一个worker出现问题,其他worker独立地继续进行争抢,实现请求过程不会造成服务中断。
worker数和服务器的CPU数相等是最为适宜的。
①发送1个请求,占用了worker的几个连接数?
2个(静态请求)或4个(动态请求)。
②nginx有1个master,有4个worker。每个worker支持最大的连接数据
1024,支持的最大并发数
是多少?
worker最大支持的连接数:4*1024;
除以2或除以4,即可得到结果。
实现效果:
打开浏览器,在浏览器地址栏输入地址www.123.com跳转到Linux系统tomcat主页面中。
准备工作:
(1)在Linux系统中安装 tomcat,使用默认端口8080
;
tomcat安装文件放到Linux系统中解压;
进入tomcat的bin
目录中,./startup.sh
启动 tomcat服务器;
(2)对外开放访问的端口:
firewall-cmd --add-port=8080/tcp --permanent firewall-cmd -reload #查看已经开放的端口号 firewall-cmd --list-all
(3)在Windows系统中通过浏览器访问 tomcat服务器;
具体配置:
(1)在Windows系统的host文件
中进行域名和IP对应关系的配置;
(2)在nginx进行请求转发的配置(反向代理配置);
(3)最终测试。
实现效果
使用nginx反向代理,根据访问的路径跳转到不同端口的服务中;
nginx监听端口为9001
;
访问http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8081
准备工作
(1)准备两个 tomcat服务器,一个8080端口,一个8081端口;
(2)创建文件夹和测试页面;
具体配置
(1)找到nginx配置文件,进行反向代理配置;
(2)开放对外访问的端口号:9001、8080、8081
;
最终测试
实现效果:
浏览器地址栏输入地址http://192.168.17.129/edu/a.html(更换成本地IP),负载均衡效果 平均到8080和8081端口中。
准备工作:
(1)准备两台 tomcat服务器,一台8080,一台8081;
(2)在两台 tomcat里面,webapps
目录中,创建名称是edu
文件夹,在edu文件夹中创建页面a.html
用于测试;
在nginx的配置文件中进行负载均衡的配置;
session
问题;什么是动静分离
把动态请求和静态请求分开;
准备工作
在Linux系统中准备静态资源,用于访问。
具体配置
在nginx配置文件中进行配置。
最终测试
①浏览器中输入地址: http://192.168.17.129/image/01.jpg
②在浏览器地址栏输入地址: http://192.168.17.129/www/a.html
tips:访问地址均需更换成本机IP哦~
什么是nginx高可用
①需要两台nginx服务器
②需要keepalived
③需要虚拟IP
准备工作
①需要两台服务器: 192.168.17.129
和192.168.17.131
②在两台服务器安装nginx
③在两台服务器安装keepalived
使用 yum命令 进行安装:
yum install keepalived -y
安装之后,在etc
里生成目录keepalived
,有文件keepalived.conf
完成高可用配置(主从配置)
①修改/etc/keepalived/keepalived.conf
配置;
②在/usr/local/src
添加检测脚本;
③把两台服务器上nginx
和keepalived
启动
启动 nginx:
./nginx
启动 keepalived :
systemctl start keepalived.service
最终测试
①在浏览器地址栏输入 虚拟IP地址: 192.168.17.50
②把服务器 nginx 和 keepalived 停止,再输入 192.168.17.50