user www www;
#运行用户
worker_processes 8;
#启动进程一般情况下开4个或8个, 再往上开的话优化不太大,开启太多,会影响主进程调度,占用cpu会增高
error_log /data/logs/error.log crit;
pid
/usr/local/nginx/nginx.pid;
#全局错误日志及PID文件
worker_cpu_affinity 0001 0100 1000 0010 0001 0100 1000
0010;
#绑定worker进程和CPU,只有LINUX内核高于2.4可用;
worker_rlimit_nofile 51200;
#和系统的单进程打
开文件数一致,不必理会进程个数,使用ulimit -SHn 51200 设置
events {
use epoll;
connections 20000;
worker_connections 51200;
#工作模式及连接数上限,该值受系统进程最大打开文件数
限制,需要使用命令ulimit -n 51200设置
(/etc/sysctl.conf中添加fs.file-max=是无效的,可添加至rc.local开机设定)
maxclients=51200*8
}
http {
include mime.types;
#mine.types内定义各文件类型映像,也可使用
types {
text/html html;
image/gif gif;
image/jpeg jpg;
}进行定义
default_type application/octet-stream;
#设置默认类型是二进制流,当
类型未定义时使用二进制流的方式,比如未加装PHP时,是不予解析,用浏览器访问则出现下载窗口
server_names_hash_bucket_size 128;
#不能带单位!配置个主机时必须设置该
值,否则无法运行Nginx或测试时不通过,该设置与server_names_hash_max_size
共同控制保存服务器名的HASH表,hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。若hash
bucket
size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键
值。若报出hash max size 或 hash bucket
size的提示,则我们需要增加server_names_hash_max_size的值。
client_header_buffer_size 128k;
large_client_header_buffers 4 128k;
#4为个数,128k为大小,默认是4k。申请4个128k。当http 的URI太长或者request header过大时会报414
Request URI too large或400 bad
request,这是很有可能是cookie中写入的值太大造成的,因为header中的其他参数的size一般比较固定,只有cookie可能被写入较
大的数据,这时可以调大上述两个值,相应的浏览器中cookie的字节数上限会增大。
client_max_body_size 8m;
#HTTP请求的BODY最大限制值,若超出此值,报413 Request Entity Too Large
server_tokens off;
#关闭错误时Nginx版本显示
sendfile on;
#打开系统函数sendfile()支持
tcp_nopush on;
#打开linux(仅linux下)下TCP_CORK,sendfile打开时才有效,用来发送系统HTTP response
headers设置该选项的目的是告诉TCP协议不要仅仅为了清空发送缓存而发送报文段。通常应该设置TCPNOPUSH插口选项。这样,当请求长度超过
报文段最大长度时,协议就会尽可能发出满长度的报文段。这样可以减少报文段的数量,减少的程度取决于每次发送的数据量。
keepalive_timeout 60;
tcp_nodelay on;
#打开TCP_NODELAY在包含了keepalive才有效
上述四项可以有效提高文件传输性能,用sendfile()函数来转移大量数据,协议会需预先解析数据包报头部分信息,正常情况下报头很小,而且套接字上
设置了TCP_NODELAY。有报头的包将被立即传输,在某些情况下,因为这个包成功地被对方收到后需要请求对方确认。这样,大量数据的传输就会被延迟
而且产生大量不必要的网络流量交换。
而如果我们在socket上设置了
TCP_CORK,就像个管道塞住塞子,则带有报头的包会填满数据,所有数据根据大小填充,自动通过数据包发送出去,但在数据完成传输时,需要打开塞子。
如果你能一次发送HTTP响应的头和正文等数据集合,那这样就能使这些数据不存在延迟,编程例子:
....open socket…
setsockopt (FILE_HANDER, SOL_TCP, TCP_CORK, 1, sizeof(1));
write(FILE_HANDER, ‘content’);
fprintf(FILE_HANDER, ‘content’);
sendfile(FILE_HANDER, ‘content’);
…
setsockopt (FILE_HANDER, SOL_TCP, TCP_CORK, 0, sizeof(0));
以下为FASTCGI相关设置
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
#设置上述数值设置太小时若负载上来时可能报 502 Bad Gateway
gzip on;
#打开GZIP压缩,实时压缩输出数据流
gzip_min_length 1k;
#从Content-Length中数值获取验证,小于1K会越压越大
gzip_buffers 4 16k;
#
以16K为单位4倍的申请内存做压缩结果流缓存,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。
gzip_http_version 1.0;
#
默认1.1,大部分浏览器已经支持gzip解压,不必理会
gzip_comp_level 2;
#压缩比率1-9,1压缩比最小处理速度最快,9压缩比最大但处理最慢且耗CPU
gzip_types
text/plain application/x-javascript text/css application/xml;
#压缩类型,无论是否指定text/html总是会压缩
gzip_vary on;
#此选项可让前端的缓存服务,如squid缓存经过nginx压缩的数据
#gzip_proxied expired no-cache no-store private no_last_modified no_etag
auth any
#该选项在做反向代理时设定压缩,后面参数为验证的header头信息,再做相应的压缩处理,关闭为off
#limit_zone connlimit $binary_remote_addr 10m;
#定义名为
connlimit的并发连接数限制空间,存储10M的带有二进制IP的会话信息,每个会话信息是32bytes,10M应该可以记录320000个会
话。配合limit_conn 使用。
server {
listen 80;
server_name
www.shfq.com
www.shfq.cn
;
#多域名用空格隔开
index index.html index.htm index.php;
root /data/www;
#limit_conn connlimit 20;
#
限制一个IP只能最多只能发起20个连接,超过报 503 Service unavailable
location / {
ssi on;
#WEB文档根目录打开SSI支持
#ssi_types text/html;
# 类型
ssi_silent_errors off;
#处理SSI出错时不提示[an error occurred while processing the directive]
rewrite "^/([0-9]{5}).html$" /x.php?id=$1 last;
# redirect:302跳转到rewrite后的地址,
permanent:301永久定向last:重新将rewrite后的地址在server标签中执行,break:将rewrite后的地址在当前
location标签中执行
}
location ~ .*\.(php|php5)?$ {
#匹配文件后缀php, php5
#fastcgi_pass unix:/tmp/php-cgi.sock;
#SOCKET方式转交fastcgi处理
fastcgi_pass
127.0.0.1:9000;
#9000端口方式fastcgi
fastcgi_index index.php;
include fcgi.conf;
#包含fastcgi配置
#fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
access_log off;
expires 30d;
valid_referers none blocked servers *.wangyuan.com *.ccnec.com;
if($invalid_referers) {
#rewrite ^/ http://errorpage.html
;
return 404;
## ngx_http_accesskey_module
}
}
location ~ .*\.(js|css)?$ {
expires 1h;
add_header Cache_Control private;
}
location ~ /\.ht {
deny all;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer"'
'"$http_user_agent" $http_x_forwarded_for';
access_log /data/logs/access.log access;
}
ulimit -SHn 51200
soft hard 资源限制
n inode
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000 65000
分享到:
相关推荐
Nginx 配置说明文档 Nginx 配置说明文档是指 Nginx 服务器的配置文件,用于管理和配置 Nginx 服务器的各种设置。这个文档对 Nginx 的配置进行了详细的说明,涵盖了 Nginx 的基本配置、进程管理、错误日志、事件处理...
3.1. Nginx的主配置文件概述 3.1.1. 认识配置文件 3.1.2. nginx的配置文件结构 3.1.3. nginx的全局配置 3.2. events配置 3.3. http的配置 3.4. nginx重要指令之location 4. nginx中的rewrite 4.1. 什么是...
个人学习整理的Linux系统环境nginx配置说明文档
NULL 博文链接:https://huangyongxing310.iteye.com/blog/2332507
在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/...
### Nginx配置详解 #### 一、安装前的环境准备 在安装Nginx之前,需要确保系统中已经安装了必要的编译工具和依赖包,主要包括“gcc”和“gcc-c++”。这些工具可以通过`yum install gcc` 和 `yum install gcc-c++` ...
Nginx完整配置说明 Nginx是当前最流行的Web服务器软件之一,常用于搭建Web服务器、反向代理服务器、负载均衡器等。下面是Nginx的完整配置说明,涵盖基本配置、反向代理、FastCGI等方面的知识点。 一、基本配置 在...
在提供的文件列表中,`nginx.conf` 是主配置文件,`nginx配置说明.conf` 可能是一个示例或注释丰富的配置文件,用于学习理解。`demo1.html` 可能是一个静态HTML文件,用于测试Nginx服务器的配置。 **三、主要配置...
Nginx的配置文件通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf,根据不同的系统和安装路径可能会有所差异。 在Nginx的配置文件中,主要有以下几个部分: 1. **全局块**:这部分设置影响Nginx...
以下是对标题和描述中提及的Nginx配置文件部分知识点的详细说明: 1. **基本配置** - `user www www`: 这行指定Nginx运行时使用的用户和组,通常为非root用户以提高安全性。 - `worker_processes 1`: 定义了Nginx...
以下是对"windows下 php+nginx配置详解"的详细说明。 首先,我们需要安装Nginx。Nginx是一款高性能的HTTP和反向代理服务器,以其稳定性和高并发处理能力著称。下载适用于Windows的Nginx安装包,然后按照安装向导...
3. **编辑Nginx配置文件**:找到Nginx的配置文件,通常是`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`。添加一个新的`server`块,配置如下: ```nginx server { listen 80; listen 443 ssl; # ...
nginx配置的全说明,对nginx配置不太清楚的小伙伴可以下载了
【Nginx配置详解】 Nginx是一款高性能的HTTP和反向代理服务器,因其轻量级、高效能和高并发处理能力,在软件开发领域中被广泛使用。与Apache服务器相比,Nginx采用异步非阻塞的事件驱动模型,这使得它在处理大量...
在提供的Nginx配置文件中,我们可以看到很多重要的指令和设置项,这些设置项对于优化Nginx服务性能至关重要。接下来,我们将逐一解析这些配置项的意义及用法。 #### 二、基本配置 1. **`user`**: - **含义**: ...
Nginx配置项详解 - **server_name**: 指定服务器域名,可以是多个,支持通配符。 - **root**: 设置网站根目录,用于定位静态资源。 - **index**: 指定默认首页文件,如"index.html index.htm"。 - **listen**: ...
以上就是关于ThinkPHP3.1.3升级到PHP7以及Nginx配置伪静态的详细说明。在这个过程中,`index.php`是入口文件,`ThinkPHP`是ThinkPHP框架的核心库,而`APP`可能是项目的应用程序目录。通过这样的升级和配置,可以提升...
nginx反向代理的配置以及说明,帮你短时间学会配置nginx
在修改Nginx配置文件后,应先检查语法是否正确。可以使用`nginx -t`或`sudo nginx -t`命令进行测试,如果返回`configuration file /etc/nginx/nginx.conf test is successful`,则说明配置无误。然后重启Nginx以使...