共计 3543 个字符,预计需要花费 9 分钟才能阅读完成。
# 指定 Nginx Worker 进程运行用户以及用户组 | |
user www www; | |
#指定了 Nginx 要开启的进程数,一般几个 CPU 就写几 | |
worker_processes 2; | |
#错误日志位置 | |
error_log logs/error.log; | |
#指定进程 id 的存储文件位置 | |
pid logs/nginx.pid; | |
#指定单进程打开文件数,需与系统设定一致 | |
worker_rlimit_nofile 65535; | |
events { | |
#指定 nginx 工作模式,nginx 主要的工作模式有 select、poll、kqueue、epoll | |
#其中 select、poll 是标准工作模式,kqueue、epoll 为高效工作模式,epoll 用在 Linux 系统中,而 kqueue 用在 BSD 系统中 | |
use epoll; | |
#指定单进程的最大连接数, 即一个进程同时能处理 1024 个请求 | |
worker_connections 1024; | |
} | |
#HTTP 部分 | |
http { | |
#指定配置文件所包含的文件 | |
include mime.types; | |
#指定默认类型为二进制流,也就是当文件类型未定义时使用这种方式. | |
#例如在没有配置 PHP 环境时,Nginx 是不予解析的,此时,用浏览器访问 PHP 文件就会出现下载窗口 | |
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"';; | |
#设置允许客户端请求的最大的单个文件字节数 | |
client_max_body_size 20m; | |
#指定来自客户端请求头的 headerbuffer 大小,如果自定义了消息头或有更大的 cookie,可以在这里增加缓冲大小 | |
client_header_buffer_size 16k; | |
#指定客户端请求中较大的消息头的缓存最大数量和大小,4 为个数,32k 为大小,最大缓存为 4 个 32kb | |
large_client_header_buffers 4 32k; | |
#开启高效传输模式 | |
sendfile on; | |
#tcp_nopush,tcp_nodelay 设置 on, 防止网络阻塞 | |
tcp_nopush on; | |
tcp_nodelay on; | |
#指定客户端连接保持活动的超时时间 | |
keepalive_timeout 65; | |
#指定客户端请求头读取超时时间,如果超过这个时间,客户端还没有发送任何数据,Nginx 将返回“Request time out(408)”错误 | |
client_header_timeout 10; | |
#指定客户端请求主体读取超时时间,如果超过这个时间客户端还没有发送任何数据,Nginx 将返回“Request time out(408)”错误 | |
client_body_timeout 10; | |
#指定响应客户端的超时时间。这个超时仅限于两个连接活动之间的时间,如果超过这个时间,客户端没有任何活动,Nginx 将会关闭连接 | |
send_timeout 10; | |
#开启 gzip 压缩,实时压缩输出数据流 | |
gzip on; | |
#设置允许压缩的页面最小字节数 | |
gzip_min_length 1k; | |
#指定内存空间来存贮压缩结果,这里指定 4 个单位为 16k 的内存来存储压缩结果,即总大小为 64k | |
gzip_buffers 4 16k; | |
#指定识别 HTTP 协议版本,默认是 1.1 | |
gzip_http_version 1.1; | |
#指定 gzip 压缩比,1 压缩比最小,处理速度最快;9 压缩比最大,传输速度快,但处理最慢,也比较消耗 CPU 资源 | |
gzip_comp_level 2; | |
#指定压缩的类型,无论是否指定,“text/html”类型总是会被压缩 | |
gzip_types text/plain application/x-javascript text/css application/xml; | |
#该选项开启可以让前端的缓存服务器缓存经过 gzip 压缩的页面,例如,用 Varnish 缓存经过 Nginx 压缩的数据 | |
gzip_vary on; | |
#隐藏 Nginx 版本号 | |
server_tokens off; | |
#SERVER 部分 | |
server { | |
#指定 Nginx 监端口 | |
listen 8000; | |
#用来指定 IP 或者域名 | |
server_name localhost; | |
#指定 Nginx 默认的字符集,只有 utf- 8 支持中文字符 | |
charset utf-8; | |
#指定访问日志的名称及位置 | |
access_log logs/host.access.log main; | |
#可有多个 location | |
location / { | |
#指定网页根目录 | |
root /data/www/default.com; | |
#设定默认首页 | |
index index.html index.htm; | |
#Nginx 默认是不允许列出整个目录的, 在 server 或 location 段里添加上 autoindex on; 来启用目录浏览。#开启目录浏览 | |
autoindex on ; | |
#默认为 on,显示出文件的确切大小,单位是 bytes。#改为 off 后,显示出文件的大概大小,单位是 kB 或者 MB 或者 GB | |
autoindex_exact_size off ; | |
#默认为 off,显示的文件时间为 GMT 时间。#改为 on 后,显示的文件时间为文件的服务器时间 | |
autoindex_localtime on; | |
} | |
#开启目录浏览 | |
location /down/ { | |
#访问目录 | |
alias /home/wwwroot/test/; | |
autoindex on; | |
} | |
#指定错误页面 | |
error_page 500 502 503 503 /50x.html; | |
#定义错误页面, 如果是 500 错误, 则把站点根目录下的 50x.html 返给用户 | |
location = /50x.html {root /data/www/www.error.com ;} | |
# proxy the PHP scripts to Apache listening on 127.0.0.1:80 | |
#location ~ \.php$ { | |
# proxy_pass http://127.0.0.1; | |
#} | |
#配置 PHP | |
location ~ \.php$ { | |
#指定网页根目录 | |
root /data/www/default.com; | |
#指定 fastcgi 的地址和端口 | |
fastcgi_pass 127.0.0.1:9000; | |
#默认页面 | |
fastcgi_index index.php; | |
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; | |
#配置 fastcgi 参数 | |
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | |
#引入 fastcgi 参数 | |
include fastcgi_params; | |
} | |
# deny access to .htaccess files, if Apache's document root | |
# concurs with nginx's one | |
#location ~ /\.ht { | |
# deny all; | |
#} | |
#指定 url 中包含 jsp 或者? 的全部转发到 192.168.0.10 的 80 端口即 tomcat 处理 | |
location ~ (jsp|\?) {proxy_pass http://192.168.0.10:80;} | |
} | |
#站点 server,eg: www.default.com | |
#可配置多个站点 | |
server { | |
listen 80; | |
server_name www.default.com; | |
root /data/www/www.default.com; | |
index index.php index.html index.htm; | |
location / {root /data/www/www.default.com;} | |
error_page 500 502 503 504 /50x.html; | |
location = /50x.html {root /data/www/www.error.com ;} | |
} | |
#多个站点配置引入 | |
#conf.d/www.site.com conf.d/www.site2.com | |
include conf.d/* | |
#其他说明 | |
#针对单个域名请求做出单个连接超时的配置. | |
#比如些动态解释和静态解释可以根据业务的需求配置 | |
#proxy_connect_timeout : 后端服务器连接的超时时间_发起握手等候响应超时时间 | |
#proxy_read_timeout: 连接成功后_等候后端服务器响应时间_其实已经进入后端的排队之中等候处理(也可以说是后端服务器处理请求的时间)#proxy_send_timeout : 后端服务器数据回传时间_就是在规定时间之内后端服务器必须传完所有的数据 |
正文完