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 <regex> <replacement> flag

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

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

未完待续...

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容