Linux: 配置Ngnix作为Web Server详解
来源:互联网 发布:微信推广淘宝优惠券 编辑:程序博客网 时间:2024/05/27 21:06
配置Ngnix作为Web Server详解
IO模型:
阻塞:当一个进程发起的IO请求不能得到满足的时候,必须等待至对方把响应数据准备好,内核必须从磁盘把数据复制到内核缓存区,再从内核缓冲区复制到进程缓冲区,在此期间进程必须处在等待。
非阻塞:轮询查看数据是否准备好
同步:对方必须接收完数据,才回复
异步:把二进制数据发送出去即可,从硬件的角度看,不同同步时钟信号
同步阻塞
异步阻塞:IO复用
同步阻塞:event-driven
异步非阻塞: aio
Nginx:
具备Nginx的基本功能
轻量级的反向代理:web,mail
Tengine: 淘宝在Nginx基础上加入很多共和修改很多bug.
Nginx基本的HTTP特性详解:
1.处理静态文件:和httpd类似,依赖相应模块(CGI)才能处理动态文件;
2.处理索引文件以及自动索引:返回一个主页面给用户
3.打开文件描述符缓存(重要特性):可以缓存文件的源数据和描述符,下次找同一个文件,就能用从缓存中找到文件的路径,直接从磁盘块装载。
4.使用缓存加速反向代理:
5.简单负载均衡及容错:能实现后端服务器的健康状态检查,不支持1.2,只支持1.2,幸运的是淘宝做了很大的改进,发行了新版本:Tengine。
6.支持远程FastCGI(支持php),uwsgi(支持pyhton)
Varnish:
Nginx:cache(disk)
Httpd:cache(disk, memory)
Squid
Squid和varnish相当于httpd和ngnix,squid考虑早期计算机,vrinish考虑现代计算机。现在Nginx有支持memcache的模块,可以直接联系Memcache。
7.模块化架构. 过滤器包括gzip压缩,ranges支持,Chunked相应,XSLT,SSI(服务器端包括)及图像缩放。
8.支持SSL,TLSSNI
Nginx的配置(分段):
servergroupworkerhttp{ server{ location{} }}mail{}
支持异步的IO框架:
Kqueue(FreeBSD 4.1), epol(Linux 2.6+),/dev/poll(Solaris 7 11/99+)
支持异步的IO框架:
Kqueue(FreeBSD 4.1), epol(Linux 2.6+),/dev/poll(Solaris 7 11/99+)
Sendfile机制:
不用sendfile机制的一般流程:
使用sendfile后:
请求直接在内核封装好,读过来就直接相应了:
安装配置Nginx:
Yum list all | grep gd
Nginx.conf详解:
Worker_processes 1; //启动的worker线程数
//事件驱动中每个worker支持的最大连接数
//测试后,得到较优化的值
Events{
Worker_connections 1024;
}
//web服务相关的配置
Http{
Include mime.type; //配置默认支持的类型
#Log_format main …
#access_log logs/access.log main
Sendfile on;
#tcp_nopush no; //在网络拥塞方面的算法Nagle算法,这个是对小数据包的延迟推送算法,如果启用,在http环境下,会造成客户端响应缓慢
}
Keeplive_time 65; //使用长连接
//Nginx纯虚拟主机,每个server定义一个虚拟主机
//server_name不同支持不同主机
Server{
Listen 80;
Server_name localhost;//server_name不同,表示不同虚拟主机
//融合了httpd的DocumentRoot和Location
Location /URI/{
Root “/web/hodocs” //定义URI的网页存放路径
Index index.htmlindex.htm
}
Error_page 500 502 503 504 /50x.html
Location = /50x.html{
Root html;
}
//location的4中用法:
//location URI{}: 对当前路径及子路径下的所有对象都生效
//location = URI{}: 只对当前路径生效,精确匹配
//location ~ URI{}: 模式匹配,使用正则表达是,不区分大小写
//location ~* URI{}:模式匹配,区分大小写
//location ^~{}: 不使用正则表达式
Location /bbs/{
Root /web; //在web目录下找bbs目录
Index index.html,index.htm
//定义基于IP的访问控制法则,按照次序,从小到大
allow 172.16.100.117
deny all
//测试:curl http://172.16.100.106/bbs, 禁止访问
//定义基于用户的访问控制
auth_basic “Restricted Area …”
Auth_basic_user_file /etc/nginx/.users; //要用httpd的htpasswd
//所以要安装httpd,但不能启用,否则会占用80端口
Autoindex on; //自动索引,支持列表显示文件
}
}
Nginx service reload
Location /status{
}
//支持证书的Sserver
Ssl_certificate cert.pem //证书
Nginx –t //语法检查
LEMP:
PHP+MySQL
Nginx不支持以模块化的方式支持PHP,可以以FastCGI
方式支持PHP.
- Linux: 配置Ngnix作为Web Server详解
- ngnix 二 配置ngnix作为一个web服务器
- ngnix 作为django项目的web服务器
- linux+ngnix+php 安装配置
- ngnix的upstream模块配置详解
- ngnix 配置
- ngnix配置
- Ngnix配置
- ngnix配置
- 使用Apache Web Server 作为weblogic代理服务器(linux)
- Linux下 配置Coovachilli 作为 Web认证Portal和网关
- linux 下laravel5项目搭建及ngnix配置
- linux虚拟机配置ngnix所遇到的问题
- linux安装配置ngnix 并设置tomcat集群
- CentOS Linux搭建SVN Server配置详解
- CentOS Linux搭建SVN Server配置详解
- CentOS Linux搭建SVN Server配置详解
- CentOS Linux搭建SVN Server配置详解
- 【leetcode】Pascal's Triangle II
- 【设计模式】HeadFirst设计模式(三):装饰者(Decorator)模式
- Java漫谈之深复制与浅复制
- Future Task 延迟加载实例
- Qt中将QTableView中的数据导出为Excel文件
- Linux: 配置Ngnix作为Web Server详解
- JS SDK 随手笔记
- 牛逼博客搜集
- 黑马程序员--Java之集合(上)07
- 用memcache.php监控memcache的使用情况
- 第十章 泛型算法
- Java设计模式之回调
- ssh-agent用法
- 陪猪训练1。。。