乐趣区

nginx 详细配置例子

文件结构
… #全局块

events {#events 块

}

http #http 块
{
… #http 全局块
server #server 块
{
… #server 全局块
location [PATTERN] #location 块
{

}
location [PATTERN]
{

}
}
server
{

}
… #http 全局块
}

例子
#!nginx
# 使用的用户和组, 默认为 nobody nobody
user www www;
# 指定工作衍生进程数, 默认为 1
worker_processes 2;
# 指定 pid 存放的路径
pid /var/run/nginx.pid;

# 制定日志路径,级别
# 级别可以在下方直接使用 [debug | info | notice | warn | error | crit] 参数
error_log /var/log/nginx.error_log info;

events {
# 允许的连接数
connections 2000;
# use [kqueue | rtsig | epoll | /dev/poll | select | poll] ;
# 具体内容查看 http://wiki.codemongers.com/ 事件模型
use kqueue;
}

http {
# 文件扩展名与文件类型映射表
include conf/mime.types;
# 文件扩展名与文件类型映射表
default_type application/octet-stream;

# 自定义格式 main
log_format main ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $bytes_sent ‘
‘”$http_referer” “$http_user_agent” ‘
‘”$gzip_ratio”‘;
# 自定义格式 download
log_format download ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $bytes_sent ‘
‘”$http_referer” “$http_user_agent” ‘
‘”$http_range” “$sent_http_content_range”‘;

client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;

client_header_buffer_size 1k;
large_client_header_buffers 4 4k;

gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;

output_buffers 1 32k;
postpone_output 1460;

#允许 sendfile 方式传输文件,默认为 off
sendfile on;
# 每个进程每次调用传输数量不能大于设定的值,默认为 0,即不设上限。
# sendfile_max_chunk 100k;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;

keepalive_timeout 75 20;

# lingering_time 30;
# lingering_timeout 10;
# reset_timedout_connection on;

server {
# 监听端口
listen 80;
# 域名可以有多个,用空格隔开
server_name one.example.com www.one.example.com;

access_log /var/log/nginx.access_log main; # 日志格式, log_format main

# 对 “/” 启用反向代理
location / {
proxy_pass http://127.0.0.1:8001;
proxy_redirect off;

# 后端的 Web 服务器可以通过 Host 获取用户真实 Host
proxy_set_header Host $host;
# 后端的 Web 服务器可以通过 X -Real-IP 获取用户真实 remote_addr
proxy_set_header X-Real-IP $remote_addr;
# 后端的 Web 服务器可以通过 X -Forwarded-For 获取用户真实 IP
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

# 允许客户端请求的最大单文件字节数
client_max_body_size 10m;
# 缓冲区代理缓冲用户端请求的最大字节数
client_body_buffer_size 128k;

client_body_temp_path /var/nginx/client_body_temp;

# nginx 跟后端服务器连接超时时间 (代理连接超时)
proxy_connect_timeout 90;
# 后端服务器数据回传时间 (代理发送超时)
proxy_send_timeout 90;
# 连接成功后,后端服务器响应时间 (代理接收超时)
proxy_read_timeout 90;
proxy_send_lowat 12000;

# 设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer_size 4k;
# proxy_buffers 缓冲区,网页平均在 32k 以下的设置
proxy_buffers 4 32k;
# proxy_buffers 缓冲区,网页平均在 32k 以下的设置
proxy_busy_buffers_size 64k;
# 设定缓存文件夹大小,大于这个值,将从 upstream 服务器传
proxy_temp_file_write_size 64k;

# 为存储承载从代理服务器接收到的数据的临时文件定义目录。指定目录下支持 3 级子目录结构
proxy_temp_path /var/nginx/proxy_temp;

# 默认编码
charset utf-8;
}

error_page 404 /404.html;

location /404.html {
root /spool/www;

charset on;
source_charset koi8-r;
}

location /old_stuff/ {
rewrite ^/old_stuff/(.*)$ /new_stuff/$1 permanent;
}

location /download/ {

valid_referers none blocked server_names *.example.com;

if ($invalid_referer) {
#rewrite ^/ http://www.example.com/;
return 403;
}

#rewrite_log on;

# rewrite /download/*/mp3/*.any_ext to /download/*/mp3/*.mp3
rewrite ^/(download/.*)/mp3/(.*)\..*$
/$1/mp3/$2.mp3 break;

root /spool/www;
#autoindex on;
access_log /var/log/nginx-download.access_log download;
}

location ~* ^.+\.(jpg|jpeg|gif)$ {
root /spool/www;
access_log off;
expires 30d;
}
}
}

退出移动版