Nginx学习笔记

标签: nginx ubuntu 安装 rewrite 反向代理
31人阅读 评论(0) 收藏 举报
分类:

基于《实战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服务器处理。

第六章 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浏览器地址不变。

未完待续…

查看评论

nginx学习笔记(1)---nginx的基本架构

tengine是淘宝网发起的一个开源项目,它在nginx的基础上添加了很多高级功能和特性,其性能和稳定性在淘宝网、天猫商城这样的大访问网站得到了很好的检验。tengine的官方网站(http://te...
  • felix_yujing
  • felix_yujing
  • 2016年04月04日 18:21
  • 346

Nginx学习笔记(十一):Nginx的架构设计

前言 开始学习书的第三部分,深入Nginx了。另外,越发在Nginx身上看到了之前实习公司所开发系统的影子,真的是感谢那么一段实习经历。 Nginx架构设计 这里先说下Nginx设计时重视的几个关...
  • fzy0201
  • fzy0201
  • 2014年02月15日 22:10
  • 2142

nginx 源码学习笔记(十九)—— nginx启动过程函数调用图

学了很久的nginx启动流程,今天决定复习下以前所学的知识,画一个函数调用图,一边之后快速阅读代码。希望对大家有用,由于我的博文被大量网站抓取而且不标注来源,所以决定在图上加上水印,希望各位同学不要喷...
  • huangyimo
  • huangyimo
  • 2015年12月04日 09:42
  • 249

nginx学习笔记(5):高级数据结构ngx_rbtree_t

nginx高级数据结构ngx_rbtree_t
  • Leeds1993
  • Leeds1993
  • 2017年03月12日 12:35
  • 400

Nginx学习笔记(十九):Nginx连接

前言 上篇笔记记录了事件处理框架,以及事件的结构定义。这篇笔记开始Nginx连接定义。Nginx定义了基本的数据结构ngx_connection_t来表示连接,这类连接标识是由客户端主动发起、Ngin...
  • fzy0201
  • fzy0201
  • 2014年04月15日 20:01
  • 2398

Nginx学习笔记(四):Hello Nginx!

前言 这一篇开始动手第一个简单模块开发,一步一步的来。
  • fzy0201
  • fzy0201
  • 2014年01月08日 20:38
  • 2561

Nginx学习笔记1

1.Nginx   --  是一个高性能的 HTTP 和 反向代理 服务器 优点: 1.高并发连接,稳定,消耗内存和CPU低,开源 2.配置文件简单 3.支持rewrite重写规则   -- 能够...
  • he90227
  • he90227
  • 2015年04月14日 14:10
  • 1366

黑马23期Linux+Nginx笔记(2017年8月25日19:01:41)

     在windows和Linux环境下搭建nginx的笔记。其实在windows下安装比较简单。在Linux下安装可能需要一些依赖。    下载地址:http://download.csdn.n...
  • juliantem
  • juliantem
  • 2017年08月25日 19:02
  • 518

Nginx学习笔记

作者:fbysssmsn:jameslastchina@hotmail.com  blog:blog.csdn.net/fbysss声明:本文由fbysss整理编写,转载请注明出处关键字:NginxN...
  • fbysss
  • fbysss
  • 2009年12月29日 10:46
  • 3865

Nginx 学习笔记

nginx 以小巧,并发能力强而著称,其运行速度非常快。下面以示例介绍我的学习过程。第一次尝试使用Nginx,对其原理和使用方式都是摸索式的进行,所以所有测试都在本机完成。一、源码编译安装wget h...
  • u012675539
  • u012675539
  • 2015年12月07日 03:02
  • 340
    个人资料
    持之以恒
    等级:
    访问量: 32万+
    积分: 2978
    排名: 1万+
    最新评论