nginx10Word格式.docx
- 文档编号:3634437
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:48
- 大小:1.77MB
nginx10Word格式.docx
《nginx10Word格式.docx》由会员分享,可在线阅读,更多相关《nginx10Word格式.docx(48页珍藏版)》请在冰点文库上搜索。
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yuminstall-yzlibzlib-devel
⏹openssl
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yuminstall-yopensslopenssl-devel
3.2.2编译安装
将nginx-1.8.0.tar.gz拷贝至linux服务器。
解压:
tar-zxvfnginx-1.8.0.tar.gz
cdnginx-1.8.0
1、configure
./configure--help查询详细参数(参考本教程附录部分:
nginx编译参数)
参数设置如下:
./configure\
--prefix=/usr/local/nginx\
--pid-path=/var/run/nginx/nginx.pid\
--lock-path=/var/lock/nginx.lock\
--error-log-path=/var/log/nginx/error.log\
--http-log-path=/var/log/nginx/access.log\
--with-http_gzip_static_module\
--http-client-body-temp-path=/var/temp/nginx/client\
--http-proxy-temp-path=/var/temp/nginx/proxy\
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi\
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi\
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:
上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
mkdir-p/var/temp/nginx
2、编译安装
make
makeinstall
安装成功查看安装目录:
3.3启动nginx
cd/usr/local/nginx/sbin/
./nginx
查询nginx进程:
15098是nginx主进程的进程id,15099是nginx工作进程的进程id
执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx-c/usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path=指向配置文件(nginx.conf))
3.4停止nginx
方式1,快速停止:
cd/usr/local/nginx/sbin
./nginx-sstop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
方式2,完整停止(建议使用):
./nginx-squit
此方式停止步骤是待nginx进程处理任务完毕进行停止。
3.5重启nginx
方式1,先停止再启动(建议使用):
对nginx进行重启相当于先停止nginx再启动nginx,即先执行停止命令再执行启动命令。
如下:
./nginx
方式2,重新加载配置文件:
当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用-sreload不用先停止nginx再启动nginx即可将配置信息在nginx中生效,如下:
./nginx-sreload
3.6安装测试
nginx安装成功,启动nginx,即可访问虚拟机上的nginx:
到这说明nginx基本上安装成功。
4Nginx的rpm软件包安装
4.1安装包在位置
D:
\讲课内容--\新巴巴运动网\nginx高并发解决\nginx安装包
4.2此种安装方式不用安装gcc等编译工具
4.3安装命令如下
rpm–ivhnginx
5配置虚拟主机
5.1什么是虚拟主机
虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的。
如下图:
通过nginx可以实现虚拟主机的配置,nginx支持三种类型的虚拟主机配置,1、基于ip的虚拟主机,2、基于域名的虚拟主机3、基于端口的虚拟主机
5.2基于域名的虚拟主机配置
5.2.1需求
两个域名指向同一台服务器,用户访问不同的域名显示不同的网页内容。
两个域名是和
一台服务器还使用虚拟机192.168.101.3代替
5.2.2创建工程目录
创建/usr/local/aaa_html,此目录为域名访问的目录
创建/usr/local/bbb_html,此目录为域名访问的目录
目录中的内容使用nginx自带的html文件,将/usr/local/nginx/html中的内容拷贝分别拷贝到上边两个目录中,并且将aaa_html目录中的index.html内容改为:
“Welcometoaaanginx!
”
将bbb_html目录中的index.html内容改为“Welcometobbbnginx!
5.2.3虚拟主机配置
修改/usr/local/nginx/conf/nginx.conf文件,添加两个虚拟主机,如下:
#配置虚拟主机
server{
#监听的ip和端口,配置本机ip和端口
listen192.168.101.3:
80;
#虚拟主机名称是,请求域名的url将由此server配置解析
server_name;
#所有的请求都以/开始,所有的请求都可以匹配此location
location/{
#使用root指令指定虚拟主机目录即网页存放目录
#比如访问http:
//ip/test.html将找到/usr/local/aaa_html/test.html
//ip/item/test.html将找到/usr/local/aaa_html/item/test.html
root/usr/local/aaa_html;
#指定欢迎页面,按从左到右顺序查找
indexindex.htmlindex.htm;
}
#配置虚拟主机
server{
root/usr/local/bbb_html;
6nginx反向代理
6.1什么是反向代理
通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中由代理服务器向Internet上的web服务器发起请求,最终达到客户机上网的目的。
而反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
6.2nginx+tomcat反向代理
6.2.1需求
两个tomcat服务通过nginx反向代理,本例子使用三台虚拟机进行测试,
nginx服务器:
192.168.101.3
tomcat1服务器:
192.168.101.5
tomcat2服务器:
192.168.101.6
6.2.2启动tomcat
tomcat使用apache-tomcat-7.0.57版本,在192.168.101.5和192.168.101.6虚拟机上启动tomcat。
6.2.3nginx反向代理配置
根据上边的需求在nginx.conf文件中配置反向代理,如下:
#配置一个代理即tomcat1服务器
upstreamtomcat_server1{
server192.168.101.5:
8080;
#配置一个代理即tomcat2服务器
upstreamtomcat_server2{
server192.168.101.6:
#配置一个虚拟主机
listen80;
#域名的请求全部转发到tomcat_server1即tomcat1服务上
proxy_passhttp:
//tomcat_server1;
#欢迎页面,按照从左到右的顺序查找页面
indexindex.jspindex.htmlindex.htm;
#域名的请求全部转发到tomcat_server2即tomcat2服务上
//tomcat_server2;
6.2.4测试
分别修改两个tomcat下的webapps/ROOT/index.jsp的内容,使用tomcat1和tomcat2两个服务首页显示不同的内容,如下:
tomcat1下的index.jsp修改后:
tomcat2下的index.jsp修改后:
分别访问、测试反向代理。
请求访问通过nginx代理访问tomcat1,请求访问通过nginx代理访问tomcat2。
7负载均衡
7.1什么是负载均衡
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡,英文名称为LoadBalance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
负载均衡的三大功能:
转发、故障移除、恢复添加
7.2nginx实现负载均衡
7.2.1需求
nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至tomcat服务器。
nginx负载均衡服务器:
7.2.2配置
根据上边的需求在nginx.conf文件中配置负载均衡,如下:
upstreamtomcat_server_pool{
8080weight=10;
//tomcat_server_pool;
}
7.2.3测试
请求,通过nginx负载均衡,将请求转发到tomcat服务器。
通过观察tomcat的访问日志或tomcat访问页面即可知道当前请求由哪个tomcat服务器受理。
8nginx负载均衡高可用
8.1什么是负载均衡高可用
nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。
主服务器和备份机上都运行高可用(HighAvailability)监控程序,通过传送诸如“Iamalive”这样的信息来监控对方的运行状况。
当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务IP并继续提供负载均衡服务;
当备份管理器又从主管理器收到“Iamalive”这样的信息时,它就释放服务IP地址,这样的主服务器就开始再次提供负载均衡服务。
8.2keepalived+nginx实现主备
8.2.1什么是keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。
Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web服务器。
8.2.2keepalived工作原理
keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouterRedundancyProtocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到VRRP包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master。
这样的话就可以保证路由器的高可用了。
keepalived主要有三个模块,分别是core、check和VRRP。
core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。
check负责健康检查,包括常见的各种检查方式。
VRRP模块是来实现VRRP协议的。
详细参考:
Keepalived权威指南中文.pdf
8.2.3keepalived+nginx实现主备过程
8.2.3.1初始状态
8.2.3.2主机宕机
8.2.3.3主机恢复
8.2.4高可用环境
两台nginx,一主一备:
192.168.101.3和192.168.101.4
两台tomcat服务器:
192.168.101.5、192.168.101.6
8.2.5安装keepalived
分别在主备nginx上安装keepalived
\讲课内容--\新巴巴运动网\nginx高并发解决\高可用\keepalived\安装包
安装命令:
查看openssl的版本:
要求必须是openssl-1.0.1e以上才行、如果版本已经符合、不用再安装openssl
(非必须)Rpm–Uvhopenssl-1.0.1e-30.el6.8.i686.rpm
安装keepalived软件
rpm–ivhkeepalived-1.2.13-5.el6_6.i686.rpm
8.2.6配置keepalived
8.2.6.1主nginx
修改主nginx下/etc/keepalived/keepalived.conf文件
!
ConfigurationFileforkeepalived
#全局配置
global_defs{
notification_email{#指定keepalived在发生切换时需要发送email到的对象,一行一个
XXX@XXX.com
notification_email_fromXXX@XXX.com#指定发件人
#smtp_serverXXX#指定smtp服务器地址
#smtp_connect_timeout30#指定smtp连接超时时间
router_idLVS_DEVEL#运行keepalived机器的一个标识
vrrp_instanceVI_1{
stateMASTER#标示状态为MASTER备份机为BACKUP
interfaceeth0#设置实例绑定的网卡
virtual_router_id51#同一实例下virtual_router_id必须相同
priority100#MASTER权重要高于BACKUP比如BACKUP为99
advert_int1#MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒
authentication{#设置认证
auth_typePASS#主从服务器验证方式
auth_pass8888
virtual_ipaddress{#设置vip
192.168.101.100#可以多个虚拟IP,换行即可
8.2.6.2备nginx
修改备nginx下/etc/keepalived/keepalived.conf文件
配置备nginx时需要注意:
需要修改state为BACKUP,priority比MASTER低,virtual_router_id和master的值一致
notification_email_fromXXX@XXX.com#指定发件人
#smtp_serverXXX#指定smtp服务器地址
stateBACKUP#标示状态为MASTER备份机为BACKUP
virtual_router_id51#同一实例下virtual_router_id必须相同
priority99#MASTER权重要高于BACKUP比如BACKUP为99
authentication{#设置认证
8.2.7测试
主备nginx都启动keepalived及nginx。
servicekeepalivedstart
8.2.7.1初始状态
查看主nginx的eth0设置:
vip绑定在主nginx的eth0上。
查看备nginx的eth0设置:
vip没有绑定在备nginx的eth0上。
访问,可以访问。
8.2.7.2主机宕机
将主nginx的keepalived停止或将主nginx关机(相当于模拟宕机),查看主nginx的eth0:
eth0没有绑定vip
注意这里模拟的是停止keepalived进程没有模拟宕机,所以还要将nginx进程也停止表示主nginx服务无法提供。
查看备nginx的eth0:
vip已经漂移到备nginx。
8.2.7.3主机恢复
将主nginx的keepalived和nginx都启动。
查看主nginx的eth0:
vip漂移到主nginx。
访问:
,正常访问。
主nginx恢复时一定要将nginx也启动(通常nginx启动要加在开机启动中),否则即使vip漂移到主nginx也无法访问。
8.2.8解决nginx进程和keepalived不同时存在问
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nginx10