【ch10】高性能Web服务器-NGINX_第1页
【ch10】高性能Web服务器-NGINX_第2页
【ch10】高性能Web服务器-NGINX_第3页
【ch10】高性能Web服务器-NGINX_第4页
【ch10】高性能Web服务器-NGINX_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《Linux服务器安全管理高级运维》课程教案课题:项目10高性能Web服务器——NGINX教学目的:1.了解NGINX2.了解NGINX的安装与配置原理3.了解NGINX的常用功能4.掌握NGINX的安装与配置5.掌握NGINX常用功能的使用方法6.掌握NGINX的反向代理课型:新授课课时:本章安排4个课时。教学重点:重点:掌握NGINX的源码编译安装流程(依赖安装、configure配置、make编译与安装)及核心配置文件nginx.conf的结构与参数含义。掌握NGINX反向代理与URL重写(Rewrite)功能的配置方法与实际应用场景。教学难点:难点:NGINX配置文件的分层结构(main→events→http→server→location)及各层之间的继承关系,location块正则匹配规则(=、~、~*、^~)的区别与优先级。负载均衡模块中轮询、Weight、ip_hash、fair、url_hash五种调度算法的原理与适用场景,以及upstream中后端服务器状态(down/backup/max_fails/fail_timeout)的配置方法。教学过程:教学形式:讲授与实训结合,教学组织采用课堂整体讲授、命令行演示操作与分组讨论相结合的方式。教学媒体:采用“课堂整体讲授+投屏命令行演示+系统运行测试”的方式进行。通过整体讲授建立NGINX高性能Web服务器的完整知识框架,涵盖NGINX组成与工作原理、性能优势、安装配置、配置文件结构、反向代理与URL重写应用五大模块;借助投屏实时执行命令,分步演示依赖包安装(gcc/pcre/zlib/openssl)、源码下载与解压、configure配置(--with-http_stub_status_module--with-http_ssl_module)、make编译与makeinstall安装、防火墙端口开放与NGINX启动验证、nginx.conf核心配置(全局配置/events/http/server/location)、负载均衡upstream配置(轮询/Weight/ip_hash)、反向代理location配置(proxy_pass)、URL重写Rewrite配置(permanent重定向)、nginx-t配置检查与nginx-sreload平滑重启、StubStatus状态查看等关键操作;同时设计Apache与NGINX性能对比、Master-Worker多进程模型与多线程模型对比、轮询与ip_hash负载均衡算法效果对比、反向代理与正向代理概念对比等多组对比案例,引导学生通过对比分析掌握NGINX的核心优势与配置逻辑。板书设计:本课标题高性能Web服务器——NGINX课次2授课方式理论课□讨论课□习题课□其他□课时安排4学分共2分授课对象普通高等院校学生任课教师教材及参考资料1.《Linux服务器安全管理高级运维》;电子工业出版社。2.本教材配套视频教程及学习检查等资源。3.与本课程相关的其他资源。教学基本内容教学方法及教学手段项目情境NGINX是免费、开源、高性能的HTTP服务器和反向代理服务器、邮件代理服务器,通用TCP/UDP代理服务器。它由俄罗斯的程序设计师IgorSysoev开发。官方测试显示,NGINX能够支撑5万个并发连接,并且CPU、内存等资源消耗非常低,运行也非常稳定。NGINX会带来更加优质的使用体验。与其他软件一样,NGINX也可以进行配置与调试。本书将介绍安装配置与调试NGINX的方法,同时深入介绍NGINX的架构和常用功能,以便读者更便捷地理解和使用它。参考以下形式:1.衔接导入2.悬念导入3.情景导入4.激疑导入5.演示导入6.实例导入7.其他形式本章基本知识汇总任务1NGINX10.1.1NGINX的组成与工作原理文件组成:二进制可执行文件(核心框架+官方模块+第三方模块)、nginx.conf配置文件(用户按语法规则定制功能)、access.log访问日志(记录HTTP请求与响应信息)、error.log错误日志(记录运行异常便于定位问题)。模块结构分类:核心模块(HTTP/EVENT/MAIL)、基础模块(HTTPAccess/HTTPFastCGI/HTTPProxy/HTTPRewrite)、第三方模块(HTTPUpstreamRequestHash/Notice/HTTPAccessKey)。模块功能分类:处理器模块(Handlers,直接处理请求输出内容)、过滤器模块(Filters,修改其他处理器输出内容)、代理类模块(Proxies,与后端服务交互实现代理和负载均衡)。进程模型:守护进程后台运行,采用多线程+异步非阻塞I/O事件模型。Master进程负责管理(对外接收信号、对内转发信号管理Worker、监控Worker运行状态);Worker进程负责处理网络事件(多个Worker对等竞争请求,各进程独立,一个请求只由一个Worker处理)。Worker数量配置:建议与CPU核心数一致,充分利用CPU资源,避免上下文切换损耗。10.1.2NGINX的性能优势Web服务器:处理静态文件/索引文件/自动索引效率极高。代理服务器:实现无缓存反向代理加速,提高网站运行速度。负载均衡服务器:支持Rails/PHP/HTTP代理,支持容错和多种负载均衡算法。性能:采用内核Poll模型,支持5万并发连接,内存占用极低(1万空闲连接仅占2.5MB)。稳定性:分阶段资源分配技术,CPU与内存占用率低,DOS攻击基本无效。高可用性:支持热部署,启动速度极快,可在持续服务下升级软件版本或配置,实现7×24小时不间断运行。与传统Web服务器(Apache)相比:反向代理/Rewrite规则/稳定性/静态文件处理/内存消耗等方面优势明显。任务2NGINX的安装与配置10.2.1NGINX的快速安装版本选择:主线版本(包含活跃开发内容和新功能,可能导致第三方模块中断)、稳定版本(仅关键错误修复,推荐生产环境使用)。依赖安装:yum-yinstallgccgcc-c++automakepcrepcre-develzlibzlib-developenssl-devel。源码编译安装流程:mkdir/usr/local/nginx→wget下载tar包→tar解压→cd进入目录→./configure--with-http_stub_status_module--with-http_ssl_module→make→makeinstall。启动:/usr/local/nginx/sbin/nginx-c/usr/local/nginx/conf/nginx.conf。配置修改:修改listen端口(避免与Apache的80端口冲突)、server_name设置为公网IP。防火墙配置:关闭防火墙(CentOS6:systemctlstopiptables.service;CentOS7:systemctlstopfirewalld.service)或单独开放端口(firewall-cmd--zone=public--add-port=80/tcp--permanent→reload)。常用命令:./nginx(启动)、./nginx-sstop(关闭)、./nginx-sreload(重新启动)。10.2.2NGINX的配置与调试配置文件位置:源码编译安装为安装目录/conf/nginx.conf;yum安装为/etc/nginx/nginx.conf(主配置)+/etc/nginx/conf.d/。配置文件结构(4部分):main(全局设置)→server(主机设置)→upstream(负载均衡服务器设置)→location(URL匹配特定位置设置)。继承关系:server继承main;location继承server;upstream不继承也不被继承。全局配置:user(进程运行用户/组)、worker_processes(进程数,与CPU核数相同)、error_log(错误日志路径及级别debug/info/notice/warn/error/crit)、pid(进程ID存储文件)、worker_rlimit_nofile(最大文件描述符数,应大于worker_connections×worker_processes)、events{useepoll;worker_connections65536;}(工作模式select/poll/kqueue/epoll,Linux优先epoll;最大连接数=worker_processes×worker_connections;反向代理时除以4)。HTTP服务器配置:includeconf/mime.types(包含文件类型)、default_typeapplication/octet-stream(默认二进制流)、log_format(日志输出格式)、client_max_body_size(最大单文件字节数)、client_header_buffer_size(请求头缓冲区大小)、large_client_header_buffers(大消息头缓存)、Sendfileon(高效文件传输)、tcp_nopush/tcp_nodelayon(防止网络阻塞)、keepalive_timeout(连接保持超时)、client_header_timeout/client_body_timeout/send_timeout(超时设置)。HttpGzip模块配置:gzipon(开启压缩)、gzip_min_length(最小压缩字节)、gzip_buffers(压缩缓存大小)、gzip_comp_level(压缩比1~9)、gzip_types(压缩类型)、gzip_vary(启用缓存策略)。负载均衡配置:upstream名称{ip_hash;serverIP:port;serverIP:portdown;serverIP:portmax_fails=3fail_timeout=20s;}。调度算法:轮询(默认,按时间顺序分配,宕机自动剔除)、Weight(权值越高分配概率越大)、ip_hash(按IP哈希分配,解决会话共享)、fair(按响应时间分配,需第三方模块)、url_hash(按URL哈希分配,需第三方模块)。后端状态:down(不参与)、backup(备份服务器)、max_fails(允许失败次数)、fail_timeout(失败后暂停时间)。注意:ip_hash时不能使用Weight和Backup。Server虚拟主机配置:server{listen80;server_nameIP或域名;index默认首页;root网页根目录;charset编码;access_log日志路径格式名;}。URL匹配配置:location~..(gif|jpg|jpeg|png|bmp|swf)${root/web/**;expires30d;}(正则匹配静态文件扩展名,设置过期时间)。StubStatus模块配置:location/NginxStatus{stub_statuson;access_loglogs/NginxStatus.log;auth_basic"NginxStatus";auth_basic_user_file/htpasswd;}。需编译时加--with-http_stub_status_module,密码文件用Apachehtpasswd生成。状态信息:Activeconnections(活跃连接数)、serveracceptshandledrequests(总连接数/握手数/请求数)、Reading/Writing/Waiting(读写等待状态)。错误页面配置:error_page404/404.html;error_page500502503504/50x.html;location=/50x.html{roothtml;}(错误页面需大于512KB避免IE替换)。10.2.3NGINX的日常维护技巧配置文件调试:nginx-t(检查配置文件语法是否正确)、nginx-t-c/usr/local/nginx/conf/nginx.conf(指定配置文件路径检测)。版本与编译信息查看:nginx-v(版本)、nginx-V(版本+编译参数)。任务3NGINX常用功能10.3.1NGINX的反向代理应用实例反向代理原理:NGINX安装在目标主机,转发客户机请求到后端服务器,决定由哪台目标主机处理请求;支持根据正则匹配采取不同转发策略,处理错误页跳转和异常判断;后端服务器异常时自动重新转发并停止向异常服务器转发。实例:NGINX监听9001端口,访问/edu/跳转到:8080,访问/vod/跳转到:8081。配置:在http块中添加server{listen9001;server_name29;location~/edu/{proxy_pass:8080;}location~/vod/{proxy_pass:8081;}}。location指令说明:=(严格匹配URL,匹配成功立即停止)、~(包含正则,区分大小写)、~*(包含正则,不区分大小写)、^~(不包含正则,区分大小写,匹配度最高)。10.3.2NGINX的URL重写应用实例Rewrite作用:搜索引擎优化、隐藏真实URL/使URL简洁、网站升级重定向、移动端与PC端分别适配不同页面。配置方法:server{listen80;server_name.com;rewrite^/(.)/1permanent;}(将不带www的域名永久重定向到带www的域名)。或使用if条件判断:if(host!=''){rewrite^/(.)/$1permanent;}。配置步骤:编辑虚拟主机配置文

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论