user nobody; #运行用户
worker_processes 1; #启动进程,通常设置成和cpu的数量相等
#全局错误日志及PID文件
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#工作模式及连接数上限
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
#use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; #最大连接数,默认为512
}
http {
include mime.types; #设定mime类型,类型由mime.type文件定义 文件扩展名与文件类型映射表
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; #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块
# tcp_nopush on; # 按照大小发送数据包,不是按照请求
keepalive_timeout 65; #连接超时时间
tcp_nodelay on; # 按照请求发送数据包
gzip on; # 开启gzip压缩
gzip_disable "MSIE [1-6]."; # 不给IE6 Gzip
client_header_buffer_size 128k; # 如果请求头大小大于指定的缓冲区,则使用large_client_header_buffers指令分配更大的缓冲区。
large_client_header_buffers 4 128k; # 规定了用于读取大型客户端请求头的缓冲区的最大数量和大小。 这些缓冲区仅在缺省缓冲区不足时按需分配。
sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
upstream mysvr { # 服务集群
server 127.0.0.1:7878;
server 192.168.10.121:3333 backup; #热备
}
#设定虚拟主机配置
server {
listen 80; # 侦听80端口
server_name mysvr; # 定义使用 mysvr 访问
root html; # 定义服务器的默认网站根目录位置
access_log logs/nginx.access.log main; # 设定本虚拟主机的访问日志
location / { # 默认请求
index index.php index.html index.htm; # 定义首页索引文件的名称
client_max_body_size 100m; # 配置请求体最大容量
proxy_set_header Host $http_host; # Host包含客户端真实的域名和端口号;
proxy_set_header X-Real-IP $remote_addr; # X-Forwarded-Proto表示客户端真实的协议(http还是https)
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # X-Real-IP表示客户端真实的IP;
proxy_set_header X-Forwarded-Proto $scheme; # X-Forwarded-For这个Header和X-Real-IP类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP。
deny 127.0.0.1; #拒绝的ip
allow 172.18.5.54; #允许的ip
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
#静态文件,nginx自己处理
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
expires 30d; # 过期30天,静态文件不怎么更新
}
#禁止访问 .htxxx 文件
location ~ /.ht {
deny all;
}
}
}