nginx
NGINX 通过FastCGI 来连接PHP
Memcached 的 GET 指定的接口
NGINX中的两个模型:epoll 和 kqueue(默认是kqueue模型)
NGINX要实现代理必须要Rails和PHP支持
NGINX还支持Perl语言
Apache与NGINX区别:
NGINX异步非阻塞
Apache阻塞型
使用模型不同
Apache——select 单一处理
NGINX——epoll、kqueue 批量处理
虚拟主机:
在web服务中就是一个独立的网站站点,这个独立的站点(域名、ip、端口)具有独立的程序和资源和目录。
CGI 是通用网关接口
为HTTP服务器和其他机器上的程序通信交流的一种工具
Fastcgi 它是工作在socket层
是一个课伸缩的、高速的在http服务器和动态脚本语言间通信的接口 c/s架构
Socket层
Fastcgi特点:
1、http服务器和动态脚本语言间通信的接口或工具
2、可以把动态语言解析和http服务器分离
3、Nginx和Apache Lighttpd 都支持fastcgi
4、Fastcgi采用c/s架构,分为客户端和服务器端
5、PHP动态语言服务器可以启动多个fastcgi的守护进程
Fastcgi 连接PHP-fpm 同时,PHP-fpm找到php-ini 用php-ini连接数据库
Nginx不支持外部程序的直接调用或者解析 所以需要用PHP来连接
日志级别: (由低到高)
Debug info notice warn error crit [1] alert emerg
Log_format:用来定义记录日志的格式
$remote_addr:记录访问网站的客户端地址
$remote_user:远程客户端用户名称
“$time_local”:记录访问时间与时区
“$request”:用户的http请求起始行信息
$status:http状态码
$body_bytes_sent:服务器发送给客户端的响应body字节数
$http_referer:记录此次请求是从哪个连接访问过来的
$http_user_agent:记录客户端访问的信息
$http_x_forwarded_for:当前端有代理服务器时,设置web节点记录客户端地址的配置
Location指令的作用:
是根据用户请求的URL来执行不同的应用。
指令 匹配标识 网址
Location = ~ ~ * uri {
执行
}
~:区别大小写
~*:不区别
!:取反
^~:在进行常规的字符串匹配检查之后,不做正则表达式检查
= / 精确匹配 优先级最高
/路径/ 路径匹配
^~ /images/ 优先匹配
地址重写:
实现URL地址重写 跳转 PCRE
rewrite regex replacement flag
server location
regex里可以加入:
\将后面接着的字符标记为一个特殊字符或一个原义字符或一个向后引用
^匹配输入字符串的起始位置
$匹配输入字符串的结束位置
*匹配前面的字符零次或多个
+匹配前面的字符一次或多次
?匹配前面的字符零次或多次
(patteern)匹配括号内的pattern并在后面获取对应的匹配
flag:
last:匹配完成后继续向下匹配性的location URL规则
break:匹配完代表终止,不在匹配后面的任何规则
redirect:返回302临时重定向,浏览器地址或显示跳转之后的URL地址
permanent:永久跳转
格式:
rewrite ^/(.*) http://www.baidu.com/$1 permanent;
nginx访问认证:
auth_basic ——我想显示的提示词
auth_basic_user_file ——我允许谁进名单
http service location
反向代理:
写到http下
upstream mycluster {
server 192.168.5.1:80 ;
server 192.168.5.10:80 weight=1;
}
写到server下:
location = / {
proxy_pass http://mycluster;
}
生产当中用到的级别