1. Nginx特点
轻量级、占有内存少、并发能力强
2. 编译安装Nginx
yum install pcre pcre-devel
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar zxvf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx
make && make install
3. 主要目录
conf 配置文件
html 网页文件
logs 日志文件
sbin 主要的二进制程序
4. 启动Nginx
./sbin/nginx
如果不能成功启动,首先检查80端口是否被占用
5. Nginx 命令参数
nginx -t 测试配置是否正确
nginx -s reload 加载最新的配置
nginx -s stop 立即停止
nginx -s quiet 优雅的重启
nginx -s reopen 重新打开日志
6. Nginx 的应用
# Nginx 配置段
# 一般设置为cpu数 * 核数
worker_processes 1;
events {
# 一个 worker 连接的最大数
worker_connections 1024;
}
# 配置 http 服务器的主要段
http {
include mime.types;
default_type application/octet-stream;
# 日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
# 日志位置 及使用的格式
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
server {
listen 8080; # 监听的端口
server_name localhost; # 服务器名称 多个用空格隔开
#access_log logs/host.access.log main;
location / {
root html; # 定位根目录
index index.html index.htm; # 默认索引页
}
# 配置 php
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}
}
}
$remote_addr 和 $http_x_forwarded_for 用来记录客户端的ip地址
$remote_user 用来记录客户端名称
$time_local 用来记录访问时间与时区
$request 用来记录请求的 url 与 http 协议
$status 请求状态 成功是 200
$body_bytes_sent 记录发送给客户端文件主体内容大小
$http_referer 用来记录从哪个页面链接访问过来的
$http_user_agent 记录客户端浏览器相关信息
7. Nginx 与 PHP
通过 fastcgi 模式来相互通信,两者是相互独立的,而 php 与 Apache 的关系是 php 作为 Apache 的一个模块来启动
8. 重写规则
rewrite 和 try_files
try_files $uri/ $uri /index.php?$query_string;
9. Pathinfo
location ~ \.php(.*)$ { # 正则匹配.php后的pathinfo部分 root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $DOCUMENT_ROOT$fastcgi_script_name;
fastcgi_param PATH_INFO $1; # 把pathinfo部分赋给PATH_INFO变量
include fastcgi_params;
}