Nginx教程
Nginx教程,Nginx 是一个 http 服务器。是一个使用 C 语言 开发的高性能的 http 服务器及反向代理服务器。Nginx 是一款高性能的 http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
Nginx与LVS对比
Nginx与LVS区别,1. 工作在网络的 7 层之上,可以针对 http 应用做一些分流的策略,比如针对域名、目录结构。它的正则规则比HAProxy 更为强大和灵活,这也是它目前广泛流行的主要原因之一。
Nginx编译参数
在 Linux 下我们通过源码方式安装 Nginx 时,可以通过指定不同的编译参数,对 Nginx 设置不同的功能,大致的编译参数可以分为路径参数、用户参数、模块设置参数、邮件设置参数和一些其他参数。
Nginx gzip配置
Nginx 的 gzip 模块是告诉 nginx 采用 gzip 压缩的形式发送数据。这将会减少我们发送的数据量。 Gzip 压缩模块是 Nginx 是一个自带的模块但是默认状态是它未启用的。
Nginx fastcgi配置
CGI 全称是 “通用网关接口”(Common Gateway Interface), 它可以让一个客户端,从网页浏览器向执行在 Web 服务器上的程序请求数据。 CGI 描述了客户端和这个程序之间传输数据的一种标准。
Nginx监控状态配置
在 Nginx 中,我们如果想查看 Nginx 的状态监控,我们可以配置 http_stub_status_module 模块,该模块在编译时,需指定编译选项 --with-http_stub_status_module。
Nginx随机主页配置
在 Nginx 中,我们如果想让 Nginx 随机在多个网页中随机选择一个做为主页,我们可以配置 http_random_index_module 模块,该模块在编译时,需指定编译选项 --with-http_random_index_module。
Nginx网页内容替换
Nginx 中的 ngx_http_sub_module 模块是一个过滤器,它修改网站响应内容中的字符串,比如你想把响应内容中的 ‘haicoder’ 全部替换成 ‘HaiCoder‘。
Nginx连接限制
在 Nginx 中,我们经常会遇到这种情况,服务器流量异常,负载过大等等。对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个 ip 的连接数,并发数进行限制。http_limit_conn_module 模块来实现。
Nginx访问控制
在 Nginx 中,http_access_module 模块是基于 IP 的访问控制,http_access_module 模块是 Nginx 本身内置的模块,不需要安装的时候配置。也就是允许哪些 IP 访问,不允许哪些 IP 访问。
Nginx登录认证
在 Nginx 中,http_auth_basic_module 模块实现访问必须输入用户名和密码,在用户名和密码正确的情况下才可以访问,这为我们一些重要资源访问增添了一道安全锁。
Nginx sendfile
在 Nginx 中,开启 sendfile 配置来提高文件的传输速率,大多数 sendfile 配置开启后,Nginx 在进行数据传输,会调用 sendfile() 函数。
Nginx location配置
Nginx 中的 location 指令是 nginx 中最关键的指令之一,location 指令的功能是用来匹配不同的 URI 请求,进而对请求做不同的处理和响应,这其中较难理解的是多个 location 的匹配顺序。
Nginx expire配置
Nginx 中的 expires 起到控制页面缓存的作用,合理的配置 expires 可以减少很多服务器的请求。要配置 expires,可以在 http 段中或者 server 段中或者 location 段中加入。
Nginx负载均衡配置
负载均衡,单从字面上的意思来理解就可以理解为 N 台服务器平均分担负载,不会因为某台服务器负载高宕机和某台服务器闲置的情况。那么负载均衡的前提就是要两台以上服务器才能实现。
Nginx缓存配置
当启用了 Nginx 的缓存功能时,Nginx 会将后端服务的响应保存在本地磁盘上,在后续的请求中只有请求满足缓存的条件就会命中缓存,Nginx 不会再将请求转发到后端的服务上。
Nginx geoip
Nginx GeoIP 过滤器根据来自 Maxmind GeoLite2 数据库的数据添加有关 IP 地址的地理位置的信息。 通过 IP 区别国内或国外,从而跳转到不同的页面,最终用 nginx 的第三方 module。
Nginx配置HTTPS
HTTPS 是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。
Nginx lua
最先将 Nginx,Lua 组合到一起的是 OpenResty,它有一个 ngx_lua 模块,将 Lua 嵌入到了 Nginx 里面;随后Tengine 也包含了 ngx_lua 模块。
Nginx root与alias
nginx 指定文件路径有两种方式 root 和 alias,alias 指定的目录是准确的,root 是指定目录的上级目录,并且该上级目录要含有 location 指定名称的同名目录。
Nginx CPU亲和性
Nginx 默认没有开启利用多核 cpu,我们可以通过 `worker_processes` 指令来启动多个 worker,但是 worker 最终运行在哪些 cpu 核上是系统层进行调度的。
Nginx if指令
Nginx 的 if 指令是属于 rewrite 模块的,所以对于 if 来讲,会和其他的 rewrite 模块执行全部执行完之后再进行下一阶段。如果 if 指令的结果是 match 的,那么 if 会创建一个内嵌的 location 块,只有这里面的 content 处理指令(NGX_HTTP_CONTENT_PHASE 阶段)会执行。
Nginx性能优化
Nginx 的性能优化主要从 Nginx 运行工作进程数量、Nginx 运行 CPU 亲和力、Nginx 最大打开文件数、Nginx 事件处理模型、开启高效传输模式、连接超时时间、fastcgi 调优、gzip 调优、expires 缓存调优和内核参数优化以及系统连接数的优化等方面。
Nginx配置301重定向
开发网站时,一般情况下都会将带 www 的网址访问时默认跳转到不带 www 的,或者将不带 www 的跳转到带www 的,比如输入 xxxx.com 服务器收到请求后告诉浏览器页面被移到 `www.xxxx.com` 了,然后浏览器就会请求 `www.xxxx.com` 从而把用户带到另一个页面,这种行为叫做 301 重定向,意思是页面永久性被移走。