Nginx学习笔记

基于《实战Nginx:取代Apache的高性能Web服务器》 2010年版本

第一章 Nginx简介

1.Nginx的优点:

  • 高并发:使用epoll和kqueue网络I/O模型,而Apache是传统的select模型。能够支持5万并发,实际2到4万。
  • 内存消耗少
  • 成本低
  • 功能强:支持rewrite重写规则等

第二章 Nginx服务器的安装与配置

在ubuntu 16.04中安装Nginx:
1.配置用户:

# 添加www组
groupadd www
# 创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
useradd -g  www www -s /bin/false

2.安装依赖:

# 查看zlib是否安装
dpkg -l | grep zlib
# 解决依赖包openssl安装
sudo apt-get install openssl libssl-dev
# 解决依赖包pcre安装
sudo apt-get install libpcre3 libpcre3-dev
# 解决依赖包zlib安装
sudo apt-get install zlib1g-dev

3.下载并解压

# 下载nginx
wget http://nginx.org/download/nginx-1.13.1.tar.gz
# 解压nginx
tar -xzvf nginx-1.13.1.tar.gz
# 重命名文件夹
mv nginx-1.13.1 nginx

4.安装

# 配置nginx
cd /root/nginx
sudo ./configure --user=www --group=www --prefix=/root/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --conf-path=/root/nginx/nginx.conf
# 编译nginx
sudo make
# 安装nginx
sudo make install

5.检查安装是否成功

cd /root/nginx/sbin
./nginx -t 

6.启动

cd /root/nginx/sbin
./nginx -c /root/nginx/conf/nginx.conf

7.停止

# 查找master进程id
ps -ef | gre nginx

# 从容停止
kill -QUIT master进程号 

#快速停止
kill -TERM master进程号/PID文件

#强制停止
kill -9 nginx

8.平滑重启

# 首先检查配置文件
nginx -t

# 重启
nginx -HUP master进程号/PID文件

第三章 Nginx的基本配置与优化

1.基本配置

  • user指定用户和组
  • worker_processes指定工作衍生进程数,一般为CPU的总核数或者两倍
  • error_log指定错误日志级别和路径
  • pid指定pid存放路径
  • worker_rlimit_nofile指定文件描述符数量
  • events指定网络模型、连接数等
  • http指定http协议、字符集、上传文件大小限制等
  • server指定服务监听端口,转发规则等

2.虚拟主机:用于在同一台机器上搭建多个网站,nginx有三种虚拟主机的方式

  • 基于IP: http-server-listen中配置不同ip
  • 基于域名:http-server-listen中配置不同server_name
  • 基于端口:http-server-listen中配置不同端口

3.nginx的日志文件与切割:在server中使用access_log配置日志路径(设置为off关闭日志),log_format指定日志格式,需要借crontab进行日志切割。

4.location下面是使用autoindex on自动列目录。

5.expire设置浏览器本地缓存。

第四章 Nginx与PHP(FastCGI)的安装、配置与优化

第五章 Nginx与JSP、ASP.NET、Perl的安装与配置

1.对于使用jsp的网页,一般静态页面、图片、js、css、flash等使用nginx处理,.jsp、.do的请求,由nginx反向代理Tomcat HTTP服务器处理。

image

第六章 Nginx HTTP负载均衡和反向代理的配置与优化

1.负载均衡:多台服务器以对称方式组成一个服务器集合,每台服务器等价的承载负载。反向代理是指代理服务器接受Internet上的连接请求,然后将请求转发给内部服务器。

2.常用复杂均衡方式:

  • 手动选择
  • dns轮询
  • OSI网络名四层、七层负载均衡交换机,如F5

3.nginx负载均衡与反向代理配置,使用的是HTTP Upstream模块

  • upstream设置一组服务器
  • 通过location区分不同地址进行反向代理,proxy_pass设置进行反向代理的upstream服务器集群,proxy_set_header添加指定的Header头消息。

4.Upstream模块命令:

  • ip_hash:通过对访问ip执行hash操作确定目标服务器
  • server:用于配置服务器权重,失败重连、暂停时间,标记离线、恢复等配置
  • upstream:设定一组可以再proxy_pass指令中使用的代理服务器

第七章 Nginx的Rewrite规则与实例

1.Rewrite的主要功能是实现URL的重写,使用pcre库(Perl兼容正则表达式)。相关指令如下:

  • break:完成当前的规则集,不再处理rewrite指令
  • if:条件判断,不支持前嵌套、&&和||处理。变量比较:=和!=,正则表达式:*(区分大小写)或者(不区分大小写),文件存在判断-f,目录存在判断-d,文件或者目录判断-e,文件是否可执行-x。
  • return:结束规则并返回状态码(204/400等)给客户端
  • rewrite:根据表达式重定向URI,只对相对路径有效,要配对主机名,使用if语句。如果替换串以http://开头将会采用301或者302跳转进行URL重定向。
  • set:设定环境变量
  • uninitialized_variable_warn:开启或者关闭未初始化变量的警告信息

2.rewrite格式:

rewrite   flag

rewrite的最后一项为flag标记,取值有:

  • last-完成rewrite;
  • break:本条匹配完成后,终止匹配;
  • redirect:302临时重定向,浏览器显示跳转后的URL;
  • permanent:返回301永久重定向,浏览器地址显示跳转后URL。last和break浏览器地址不变。

未完待续...

你可能感兴趣的:(Nginx学习笔记)