worker_processes  4;                                           # 根据核数选择

worker_cpu_affinity   0001 0010 0100 1000;                     # 绑定nginx worker进程到不同的cpu

worker_rlimit_nofile    65535;                                 # 每个worker进程打开最大打开文件数(受系统限制,不得超过ulimit -HSn限制值)

user nginx;                             # 更改nginx默认用户  默认nobody

events {

use epoll;                                                 # 使用epoll的I/O多路复用模型,高性能高并发设置

worker_connections  1024;                   # 每个worker单个进程允许客户端最大的连接数

}

http {

include       mime.types;                                  # nginx 支持的媒体类型

default_type  application/octet-stream;                    # 默认的媒体类型

sendfile        on;                       # 开启高速传输模式,同时打开了tcp_nopush和tcp_nodelay,防止网络及磁盘I/O阻塞

tcp_nopush      on;                                        # 减少网络报文段的数量

tcp_nodelay     on;                       # 提高I/0性能,等待字节组成一个数据包才发送,对于发送字节较少的业务,等待时间较长

client_header_timeout  15;                   # 读取客户端请求头部数据的超时时间,防止客户端利用http协议***,经验参考值15

client_body_timeout   15;                           # 读取客户端请求主体的超时时间,为两次成功的读取操作之间的一个超时,默认为60

send_timeout  15;                           # 响应客户端的超时时间,为两个连接活动之间的时间,超过时间,客户端无活动,则关闭连接,默认60,可改为参考值25

keepalive_timeout  65;                                     # 连接超时

server_names_hash_max_size  32;                            # 设置存放域名的最大的散列列表的大小,默认512

server_names_hash_bucket_size  64;                         # 设置存放域名的最大散列的列表的存储桶大小  32|64|128

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';    #日志格式

server_tokens    off;                                      # 隐藏软件版本

#fastcgi参数

fastcgi_connect_timeout    240;                            # nginx与后端fastcgi服务器连接超时时间,默认60,通常不要超过75.

fastcgi_send_timeout    240;                               # nginx允许fastcgi服务器段返回数据的超时时间,在规定时间内后端必须传完所有数据,否则断开.默认60秒

fastcgi_read_timeout    240;                               # nginx从fastcgi服务器读取响应信息的超时时间,表示建立连接后,nginx等待后端服务器的响应时间

fastcgi_buffer_size     64k;                               # nginx fastcgi 的缓冲区大小,默认情况,这个参数大小由fastcgi_buffers指定的一个缓冲区的大小

fastcgi_buffers      4  64k;                               # 设定用来读取从fastcgi服务器端收到的响应信息的缓冲区大小和缓冲区的数量,默认 8 4k|8k

fastcgi_busy_buffers_size   128k;                          # 用于设置系统很忙时可以使用的fastcgi buffers大小,官方推荐fastcgi_buffers *2 ,默认 8k|16k

fastcgi_temp_file_write_size   128k;                       # fastcgi零时文件的大小,可设置128~256k

#fastcgi_temp_path   /data/ngx_fcgi_tmp;                   # fastcgi零时文件的目录

fastcgi_cache_path   /data/ngx_fcgi_cache  levels=2:2  \

keys_zone=ngx_fcgi cache:512m  inactive=1d max_size=40g;

# fastcgi缓存目录   2:2会生成256*256个子目录  keys_zone缓存空间名称  cache用多少内存  inactive默认失效时间  max_size表示最多用多少硬盘空间

gzip on;                                                   # 开启压缩

gzip_min_length   1k;                                      # 允许压缩的页面最小字节数

gzip_buffers     4 16k;                                    # 压缩缓冲区大小,表示申请4个16k的内存作为压缩结果流缓存

gzip_http_version  1.1;                                    # 压缩版本,用于设置识别http协议版本

gzip_comp_level     9;                                     # 压缩比   1-9

gzip_types   text/css  text/xml  application/javascript;   # 指定压缩类型

gzip_vary  on;                                             # 让前端的缓存服务器缓存经过gzip压缩页面

server  {

listen  80  default_server;

server_name _;

return  501;                                           # 使用ip访问网站的用户,收到501

}

server {

listen       80;                                       # 提供服务的端口

server_name  localhost;                                # 提供服务的域名主机名

location / {

root   html;                                       # 站点根目录

index  index.php index.html index.htm;             # 默认首页文件

if ($request_method !~ ^(GET|HEAD|POST)$) {

return 501;                                         # 限制http请求方式

}

if ($request_user_agent ~* LWP::Simple | BBBike | wget) {

return 403;                                         #限制下载协议代理

}

}

location ~ ^/admin/.*\.(php|php5|sh|pl|py)$           #  安全设置,admin目录下的脚本文件拒绝访问

{

allow 192.168.1.1;

deny all;

}

location ~* \.(sql|doc|txt|pdf)$  {

if (-f $request_filename) {

root  /data/www;                                      # 安全设置,请求文件重定向到别的url

rewrite ^/(.*)  http://www.error.html/$i   break;

}

}

location ~* \.(txt|doc|pdf|sql)$   {

root   /data/www;

deny   all;

}

location /upload/  { return 404;}

localtion ~ .*\.(php|php5)?$

{

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include  fastcgi.conf;

fastcgi_cache   ngx_fastcgi_cache;                     # 开启fastcgi缓存并为其指定一个名称,开启缓存有效降低cpu负载

fastcgi_cache_valid  200 302 1h;                       # 将200 302缓存应答1小时

fastcgi_cache_valid  301 1d;                           # 将301应答缓存1天

fastcgi_cache_valid  any 1m;                           # 其它应答缓存设置1分

fastcgi_cache_min_users 1;                             # 设置请求几次之后响应将被缓存,1表示一次

fastcgi_cache_use_stale error timeout invalid_header http_500;   定义哪些情况下使用过期缓存

fastcgi_cache_key  http://$host$request_uri;           # 定义fastcgi_cache的key,以请求的作为缓存的key,nginx会取这个key的md5作为缓存文件

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires       365d;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

}

转载于:https://blog.51cto.com/jusene/1786138

nginx 配置文件解释及优化安全相关推荐

  1. nginx配置文件解释(转载隔壁老梁)

    nginx配置文件nginx.conf超详细讲解 #nginx进程,一般设置为和cpu核数一样 worker_processes 4;                         #错误日志存放目 ...

  2. [Nginx优化]分享nginx配置文件及优化说明

    1.系统及内核方面     根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译:在内核参数的一些优化,如下: # Add net.ipv4.tcp_max_syn_backlog ...

  3. 运维之道 | Nginx 配置文件优化解析

    Nginx配置文件nginx.conf 1.配置文件位置/usr/local/nginx/conf/nginx.conf 2.nginx 的组成部分 配置文件中有很多#,开头的表示注释内容,我们去掉所 ...

  4. nginx配置文件优化(详细)

    nginx优化项 隐藏nginx版本 nginx 配置项优化 开启高效传输模式 fastcgi 调优 gzip 调优 expires 缓存调优 内核参数优化 系统连接数的优化 准备nginx测试环境 ...

  5. nginx主配置文件解释

    Tengine 主配置文件 Tengine 安装 tar zxvf tengine-2.0.3.tar.gz cd tengine-2.0.3/ ./configure --prefix=/data/ ...

  6. Nginx安装及配置文件解释

    安装nginx,还是在mac上面用brew比较方便. 首先,brew install nginx,提示改权限 sudo chown -R $(whoami) /usr/local 然后brew ins ...

  7. Nginx高并发系统内核优化

    Nginx高并发系统内核优化 Socket优化 Nginx 系统内核 文件优化 Nginx 系统内核 配置文件优化 Nginx配置文件 内核配置文件 PHP7配置文件 PHP-FPM配置文件 php- ...

  8. Nginx工作原理和优化、漏洞(转)

    查看安装了哪些模块命令: [root@RG-PowerCache-X xcache]# nginx/sbin/nginx -V nginx version: nginx/1.2.3 built by  ...

  9. Nginx配置和内核优化 实现突破十万并发

    nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity 00000001 00 ...

最新文章

  1. 做事,兴趣真的很重要!
  2. php字符串常用算法--字符串加密解密
  3. OpenStack基金会的白金和黄金成员公司
  4. 【opencv学习】【Canny边缘检测】
  5. Linux上更新war包
  6. 电脑一族,打电脑时候的健康的坐姿
  7. 高斯主元素消去法c语言,列主元Gauss消去法(C++实现)
  8. WINDOWS用VS2010开发NPAPI插件步骤
  9. c++修复工具_别再花钱修复旧照片啦!老照片一键修复工具,独创方法支持PS2020...
  10. 【Java开发】Java实现黑客帝国代码雨
  11. 常见反爬虫手段及应对策略
  12. 大数据apache-spark问题总结
  13. 安卓APP开发日记1——名为Another的日记APP开发
  14. qt报错:In included file: expected member name or ‘;‘ after declaration specifiers
  15. eviews做回归分析时输出值的理解
  16. 面试题(2020)微信小程序常见面试题
  17. Java软件测试工程师之学习进阶路线
  18. 《数据仓库与数据挖掘教程》ch01绪论 章节整理
  19. Java之手写实现ORM框架
  20. border-radius的使用

热门文章

  1. 使用jQuery中trigger()方法自动触发事件
  2. 取得数组中的随机数random.nextInt(index)
  3. 分区表自动维护 mysql_Oracle 10g分区表的自动维护
  4. python 网页自动处理_推荐一款 10 行 Python 代码实现网页自动化工具
  5. MYSQL二级表的管理_MySQL分区表的管理~2
  6. 2021年春季学期-信号与系统-第十一次作业参考答案-第六小题
  7. 第十五届全国大学生智能车全国总决赛获奖信息-浙江赛区
  8. html,css,js小实例,CSS和JavaScript脚本实例
  9. python异常处理类源码_Flask源码异常处理问题
  10. infer的用法_typescript高级用法之infer的理解与使用