[Nginx]Ngnix/OpenResty常识(TODO)

Nginx是一款高性能的HTTP和反向代理服务器,支持多种功能如静态文件处理、负载均衡、HTTP/2和SSL。其核心优势包括高速度、高并发、简单配置和热部署能力。Nginx通过配置如keepalive_timeout和server块来优化服务。此外,它可以作为文件下载服务器,提供静态资源服务。
摘要由CSDN通过智能技术生成

一、基础

1.1 what can nginx do

Nginx提供的基本功能服务从大体上归纳为"基本HTTP服务"、“高级
HTTP服务”和"邮件服务"(略)等三大类。

1.1.1 基本HTTP服务

Nginx可以提供基本HTTP服务,可以作为HTTP代理服务器和反向代理服
务器,支持通过缓存加速访问,可以完成简单的负载均衡和容错,支持
包过滤功能
,支持SSL等。

  • 处理静态文件、处理索引文件以及支持自动索引;
  • 提供反向代理服务器,并可以使用缓存加上反向代理,同时完成负载
    均衡和容错;【??? 如何缓存加速】
  • 提供对FastCGI、memcached等服务的缓存机制,,同时完成负载均
    衡和容错;
  • 使用Nginx的模块化特性提供过滤器功能。Nginx基本过滤器包括
    gzip压缩、ranges支持、chunked响应、XSLT、SSI以及图像缩放
    等。其中针对包含多个SSI的页面,经由FastCGI或反向代理,SSI过
    滤器可以并行处理。
  • 支持HTTP下的安全套接层安全协议SSL.
  • 支持基于加权和依赖的优先权的HTTP/2

1.1.2 高级HTTP服务

  • 支持基于名字和IP的虚拟主机设置
  • 支持HTTP/1.0中的Keep-Alive模式和管线(PipeLined)模型连接
    自定义访问日志格式、带缓存的日志写操作以及快速日志轮转。
  • 提供3xx~5xx错误代码重定向功能
  • 支持重写(Rewrite)模块扩展
  • 支持重新加载配置以及在线升级时无需中断正在处理的请求
  • 支持网络监控
  • 支持FLV和MP4流媒体传输

1.1.3 Nginx常用的功能模块

静态资源部署
	Rewrite地址重写
	正则表达式
	反向代理
负载均衡
	轮询、加权轮询、ip_hash、url_hash、fair
Web缓存
环境部署
	高可用的环境
用户认证模块...

1.1.4 Nginx的核心组成

nginx二进制可执行文件
nginx.conf配置文件
error.log错误的日志记录
access.log访问日志记录

1.2 why nginx?

(1) 速度更快、并发更高
单次请求或者高并发请求的环境下,Nginx都会比其他Web服务器响应
的速度更快。一方面在正常情况下,单次请求会得到更快的响应,另一
方面,在高峰期(如有数以万计的并发请求),Nginx比其他Web服务器更
快的响应请求。Nginx之所以有这么高的并发处理能力和这么好的性能
原因在于Nginx采用了多进程和I/O多路复用(epoll)的底层实现

(2)配置简单,扩展性强
Nginx的设计极具扩展性,它本身就是由很多模块组成,这些模块的使
用可以通过配置文件的配置来添加。这些模块有官方提供的也有第三方
提供的模块,如果需要完全可以开发服务自己业务特性的定制模块。

(3)高可靠性
Nginx采用的是多进程模式运行,其中有一个master主进程和N多个
worker进程
,worker进程的数量我们可以手动设置,每个worker进程
之间都是相互独立提供服务,并且master主进程可以在某一个worker进
程出错时,快速去"拉起"新的worker进程提供服务。

(4)热部署
现在互联网项目都要求以7*24小时进行服务的提供,针对于这一要求,
Nginx也提供了热部署功能,即可以在Nginx不停止的情况下,对Nginx
进行文件升级、更新配置和更换日志文件等功能。

(5)成本低、BSD许可证
BSD是一个开源的许可证,世界上的开源许可证有很多,现在比较流行
的有六种分别是GPL、BSD、MIT、Mozilla、Apache、LGPL。

在这里插入图片描述

1.3 安装(略)

nginx安装文档

1.4 nginx的目录结构

在这里插入图片描述

1.5 nginx.conf的几个关键配置

keepalive_timeout

用来设置长连接的超时时间
在这里插入图片描述

keepalive_requests

用来设置一个keep-alive连接使用的次数
在这里插入图片描述

server块和location块

可配置内容过多,后续再讲

静态资源

有些写死的内容可以放到nginx ,让流量甚至都不需要到real server了,比如

location /get_text {
#这里也可以设置成text/plain
default_type text/html;
return 200 "This is nginx's text";
}

如何将Nginx作为一个简单的文件下载服务器(实用)

有时需要传递文件给同事,可以把文件放到云主机的nginx服务器上,让同事自己下载。当然tomcat之流也能搞,不过Nginx很简单很强大。

location /download/ {
    alias /usr/local/nginx/html/;

    if ($request_filename ~* ^.*?\.(html|doc|pdf|zip|docx|txt)$) {
        add_header Content-Disposition attachment;
        add_header Content-Type application/octet-stream;
    }
    sendfile on;   # 开启高效文件传输模式
    autoindex on;  # 开启目录文件列表
    autoindex_exact_size on;  # 显示出文件的确切大小,单位是bytes
    autoindex_localtime on;  # 显示的文件时间为文件的服务器时间
    charset utf-8,gbk;  # 避免中文乱码
}


二、

三、

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值