Nginx 随笔
使用包管理工具安装nginx
Linux(基于deb)
sudo apt-get install nginxLinux(基于rpm)
sudo yum install nginxFreeBSD
sudo pkg_install -r nginx
编译安装nginx(Ubuntu)
(1)到官网下载nginx(http://nginx.org/en/download.html)并解压,sudo wget http://nginx.org/download/nginx-1.11.1.tar.gz && tar -zxvf nginx-1.11.1.tar.gz
(2)nginx依赖于pcre和zlib,所以需要安装相应的依赖包sudo apt-get install -y libpcre3 libpcre3-dev zlib1g-dev
(3)cd nginx-1.11.1,./configure --prefix=/usr/local/nginx,make && make install
编译安装完nginx后,我们可以在/usr/local/nginx下看到四个目录
- conf 配置文件目录
- html 项目目录文件目录
- logs 日志文件目录
- sbin 主要二进制文件目录
nginx 常用命令
/usr/local/nginx/sbin/nginx 启动nginx
/usr/local/nginx/sbin/nginx -s reload 重启nginx
/usr/local/nginx/sbin/nginx -s stop 停止nginx
/usr/local/nginx/sbin/nginx -s quit 优雅地退出nginx,也就是处理完当前的请求才会退出nginx
/usr/local/nginx/sbin/nginx -t 检查配置文件是否有错误
nginx 信号
| 信号名 | |
|---|---|
| TERM,INT | 关闭进程 |
| QUIT | 优雅的关闭进程,即等请求结束后再关闭 |
| HUP | 改变配置文件,平滑的重读配置文件 |
| USR1 | 重读日志,在日志按月/日分割时有用 |
| USR2 | 平滑的升级 |
| WINCH | 优雅关闭旧的进程(配合USR2来进行升级) |
用法
kill -信号名 cat /xxx/path/log/nginx.pid
如
kill -HUP cat /var/log/nginx.pid
nginx 配置
nginx的配置可以查看这篇博文http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html
location
location 的语法为location [=|~|~*|^~] patt {}
| 修饰符 | |
|---|---|
| = | 精准匹配 |
| ~ | 区别大小写的正则匹配 |
| ~* | 不区分大小写的正则匹配 |
| ^~ | 如果精准匹配到,则不进行正则匹配 |
rewrite
rewrite中用到的指令
if (条件) {} 设定条件,再进行重写
set #设置变量,如set $size 1;
return #返回状态码
break #跳出rewrite
rewrite #重写
if条件的语法
1: “=”来判断相等, 用于字符串比较
2: “~” 用正则来匹配(此处的正则区分大小写)
“~*” 不区分大小写的正则
3: -f -d -e来判断是否为文件,为目录,是否存在.
例

rewrite语法
语法:rewrite 正则表达式 定向后的位置 模式
如:rewrite category-(\d+)-b(\d+)\.html /ecshop/category.php?id=$1&brand=$2;
gzip配置的常用参数
gzip on|off; #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
gzip_vary on|off # 是否传输gzip压缩标志
缓存
在nginx使用缓存很简单,在location或if中设置expire即可,格式如下
expires 30s;
expires 30m;
expires 2h;
expires 30d;
反向代理 + 负载均衡
用proxy_pass和upstream就可实现反向代理和负载均衡,用法如下

这时候访问网站,通过查看日志,可以看出是两台服务器是来回处理请求的,在线上环境中,每台服务器的性能不一定一样,这时候可以通过weight关键字增加权重,如下所示

Nginx 随笔的更多相关文章
- Nginx随笔
1.用于代理与反代理,处理大量请求的工具. 2.主要有三大模块:handle.upstream.过滤模块.handle用于在nginx内部接到请求并进行处理的状况:upstream用于需要nginx接 ...
- Ribbon负载均衡及其应用
nginx - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中涉及到负载均衡,为何此处由涉及Ribbon负载均衡呢?那是因为ngnix是服务端的负责均衡,而Ribbon是客户 ...
- Nginx学习随笔
题外话 第一份工作中项目中有DBA和运维,所以平时也只关注开发部分,对数据库和服务器关注比较少,记得那时有用户反馈网站很慢,老大让我联系运维看看是不是服务器的问题,那时也不知道Nginx是个什么东西. ...
- 【随笔】nginx add_header指令的使用
nginx配置文件通过使用add_header指令来设置response header. 具体方法如下: add_header key value add_header Cache-Control n ...
- 【随笔】nginx重启问题和mysql挂了的解决办法
租了一个阿里云服务器,然后需要一个nginx来处理一下静态文件的访问和动态文件的转发,头一天没有什么问题,第二次打开,各种问题就出来了!解决方法记录一下.... Can't connect to lo ...
- 【随笔】nginx下的301跳转,两个域名指向同一个服务器ip
301跳转 页面永久性移走,通常叫做301跳转,也叫301重定向,301转向. 指的是当用户点击一个网址时,通过技术手段,跳转到指定的一个网站. 用以解决两个域名指向同一个服务器ip,当访问m.xxx ...
- Flutter随笔(二)——使用Flutter Web + Docker + Nginx打造一个简单的Web项目
前言 Flutter作为一个跨平台UI框架,功能十分强大,仅用一套代码便能编译出Android.iOS.Web.windows.macOS.Windows.Linux等平台上的应用,各平台应用体验高度 ...
- NGINX配置小随笔
达到以下效果: 1,特定目录被指定IP访问 2,不是指定的IP地址不能执行URI中特定字符串 3,特定目录中不能执行PHP文件 set $self_visit ''; if ( $request_ur ...
- 手把手教你玩转nginx负载均衡(四)--源码安装nginx
引言: 在上一篇,我们已经装好了虚拟机,并且已经配置好了网络,那么今天我们就要开始安装nginx服务器了. 安装工具以及过程 安装gcc编译套件以及nginx依赖模块 yum -y install g ...
随机推荐
- spring的统一异常处理
在控制器(controller)中添加统一异常处理的方法,在方法前面加@ExceptionHandler[(异常类.class)]注解
- Windows2008 IIS配置FTP站点
视频教程:http://vodcdn.video.taobao.com/player/ugc/tb_ugc_pieces_core_player_loader.swf?version=1.0.2015 ...
- http协议基础(十一)http与https
一.http的缺点 之前有介绍过http协议相关的一些知识,http是相当优秀和方便的,但它也有缺点,主要不足表现在如下几个方面: △ 通信使用明文(不加密),内容可能会被窃听 △ 不验证通信方的身份 ...
- [转载]C#深拷贝的方法
首先了解下深拷贝和浅拷贝的定义: 浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用. 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对 ...
- CUDA显卡运算编程菜鸟入门指南1——Hello world - yfszzx的专栏 - 博客频道 - CSDN.NET
第一次知道有显卡(GPU)编程这个东西,是去年比特币最热门的时候,看了几篇关于比特币的文章,说比特币挖矿要靠显卡,CPU的速度与GPU根本就没法比,于是就非常好奇,显卡是什么神奇的东西?为什么运算速度 ...
- A7架构
以Cortex-A7 MPCore processor来进行说明,这是一款主打低功耗的多核处理器,采用ARMv7-A架构,最多支持4个core. 每个core都有L1级的Cache,分为instruc ...
- 何为仿射变换(Affine Transformation)
http://www.cnblogs.com/ghj1976/p/5199086.html 变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型.可 ...
- Android (Android Studio)无法启动adb 解决方案
打开cmd 输入: netstat -aon|findstr "5037" 回车 taskkill /pid xxxx /f ps:xxxx为占用端口 ...
- Vue源码解析之数组变异
力有不逮的对象 众所周知,在 Vue 中,直接修改对象属性的值无法触发响应式.当你直接修改了对象属性的值,你会发现,只有数据改了,但是页面内容并没有改变. 这是什么原因? 原因在于: Vue 的响应式 ...
- Python 类中的"静态"成员变量
本文环境:Python 2.7 一个类的三个对象实例的属性被同时修改 有段代码如下: class task_queue: queue=[] def append(self,obj): self.que ...