Nginx配置文件 nginx.conf 中文详解及配置

Nginx配置文件 nginx.conf 中文详解及配置

Nginx是一款高性能的HTTP服务器软件,和Apache一样,在功能实现上都采用模块结构,都支持通用语言接口,如支持PHP、Perl、Python等的接口。还支持正向和反向代理、虚拟主机、URL重新、压缩传输、SSL加密传输等。但是和Apache相比,Nginx有着众多的突出优点,主要变现在Nginx比apache处理速度更快,占用的内存资源更少,并且nginx模块是静态编译的,对Fcgi支持很好,在连接处理上,Nginx支持epoll,代码占用空间少。Nginx是一款比Apache性能更强劲的服务器软件。

在这里总结一下Nginx配置文件 nginx.conf 中文详解,并且会提示大家如何配置Ngixn。

user ftp; #定义Nginx运行的用户和用户组
worker_processes 2; #nginx进程数,每个进程耗费10~20MB内存,建议设置为等于CPU总核心数。
error_log /dev/null; #全局错误日志定义类型,日志输出级别共有[ debug | info | notice | warn | error | crit ]五种,其中debug输出日志最为详细,而crit输出信息最少。
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid conf/nginx.pid; #指定进程文件的存储位置
worker_rlimit_nofile 1024; #一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(系统的值ulimit -n)与nginx进程数相除,但是nginx分配请求并不均匀,所以建议与ulimit -n的值保持一致。
events { #工作模式与连接数上限
use epoll; #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
worker_connections 1024; #定义每个进程最大连接数,最大客户端连接数=worker_processes(连接数)*worker_connections(进程数),执行操作系统命令“ulimit -n 65536”后,worker_connections的设置才能生效。
}
http { #设定http服务器
include mime.types; #文件扩展名与文件类型映射表,较少主配置文件的复杂度
default_type application/octet-stream; #默认文件类型,这里设置为为二进制流
include proxy.conf; #包含proxy.conf配置文件
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' #实现对日志格式的设置,其中main为日志输出格式的名字,可以在access_log中引用。
 '$status $body_bytes_sent "$http_referer" '
 '"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main; #用了log_format指令设置了日志格式之后,需要用access_log指令指定日志文件的存放路径
server_tokens off; #设置在HTTP响应中是否显示ngixn的版本号,默认是隐藏的
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
tcp_nopush on; #防止网络阻塞
server_names_hash_bucket_size 256; #保存服务器名字的hash表是由指令server_names_hash_max_size 和server_names_hash_bucket_size所控制的。参数hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。在减少了在内存中的存取次数后,使在处理器中加速查找hash表键值成为可能。如果hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。因此,如果Nginx给出需要增大hash max size 或 hash bucket size的提示,那么首要的是增大前一个参数的大小.
client_header_buffer_size 256k; #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
#large_client_header_buffers 4 32k;
large_client_header_buffers 4 256k; #客户请求头缓冲大小
nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers读取
client_body_buffer_size 256k; #缓冲区代理缓冲用户端请求的最大字节数
client_header_timeout 3m; #用于设置客户端请求头读取超时时间,超时将返回“Request time out (408)”错误。
client_body_timeout 6m; #用于设置客户端请求主体读取超时时间,超时将返回“Request time out (408)”错误。
send_timeout 3m; #指定响应客户端的超时时间。超时Nginx将会关闭连接。
client_max_body_size 200m; #设定通过nginx上传文件的大小
keepalive_timeout 120; ##长连接超时时间,单位是秒
fastcgi_intercept_errors on; #FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
#fastcgi_buffer_size 64k;
#fastcgi_buffers 8 64k;
#fastcgi_busy_buffers_size 128k;
#fastcgi_temp_file_write_size 128k;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
gzip on; #gzip模块设置 #开启gzip压缩输出
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级,可以设置为1~9,其中1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理慢,也比较耗CPU资源。
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
gzip_vary on; #设置让前端的缓存服务器缓存经过gzip压缩的页面。
server { #虚拟主机的配置
listen 8081 default_server; #监听端口
server_name localhost; #域名可以有多个,用空格隔开
#charset koi8-r; #编码
#access_log logs/host.access.log main; #日志保存路径
index index.php index.html;
root /usr/local/nginx/html;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:10000;
include fastcgi.conf;
}
location ~ \.key$ {
return 404;
}
#location / { #对 "/" 启用反向代理
# root html;
# index index.html index.htm;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html #错误页设置
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#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;
#}
# deny access to .htaccess files, if Apache's document root 拒绝访问.htaccess文件,如果Apache的文档根目录
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration 另一个虚拟主机使用的混合的知识产权,名称和端口为基础的配置
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server #HTTPS 服务器配置
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
include vhost.conf;
}

 

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: Nginx配置文件 nginx.conf 中文详解及配置 (http://blog.lxx1.com/1239)

如果博客对您有帮助,请给我 打赏


科技爱好者

工科学生大四在读,专业嵌入式开发,喜欢计算机,喜欢单片机,喜欢各种各样美好的东西,相信科技正在改变世界! 这是我的 个人博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据