nginx安装
wget http://nginx.org/download/nginx-1.3.7.tar.gz
yum install -y zlib-devel
tar xf pcre-8.30.tar.gz
cd pcre-8.30
./configure && make && make install
useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.0.8.tar.gz
cd nginx-1.0.8
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx -t 检查配置文件
如果出错:[root@localhost conf]# /usr/local/nginx/sbin/nginx
/usr/local/nginx/sbin/nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
则 ln -s /lib64/libpcre.so.0.0.1 /lib64/libpcre.so.1
nginx 启动服务
killall -s HUP nginx 重载配置
killall -s QUIT nginx 退出进程
nginx支持的几种信号:
TERM,INT 快速关闭
QUIT 从容关闭
HUP 平滑重启,重载配置
USR1 重新打开日志文件,用于日志切割
USR2 平滑升级可执行程序
WINCH 从容关闭工作进程
基本配置
1.全局配置
user nginx nginx;
运行用户和组
worker_processes 1;
工作进程数量,一般与cpu核数相等
error_log logs/error.log;
错误日志文件的位置
pid logs/nginx.pid;
PID文件的位置
worker_rlimit_nofile 65535;
2.I/O事件配置
events {
use epoll;
使用epoll模型
worker_connections 4096;每进程处理4096个连接
}
3.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;
用户空间与内核空间的缓冲区
keepalive_timeout 65;
连接保持超时
gzip on; 启用压缩
server {
web服务的监听配置
listen 80 default_server;
监听地址及端口,默认解析地址
server_name www.yanruogu.com;
网站名称
charset utf-8;
网页的默认字符集
location / {
根目录配置
root html;
网页根目录的位置
index index.html index.php;
默认首页
}
error_page 500 502 503 504 /50x.html;
内部错误的反馈页面
location = /50x.html {
错误页面配置
root html;
}
location ~ /status {
访问位置为/status
stub_status on;
打开状态统计功能
access_log off;
关闭此位置的日志记录
}
}
}
注:打开nginx的访问状态统计必须启用--with-http_stub_status_module模块
设定限速:
location /download {
limit_rate 256k;
proxy_pass http://1.2.3.4;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
location /movice {
limit_rate_after 10m;
limit_rate 100k; #缓冲10M以后限速为100k/s
}
if ($http_user_agent ~ Google|Yahoo|baidu) {
limit_rate 20k;
}