nginx 配置文件解释及优化安全
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 配置文件解释及优化安全相关推荐
- nginx配置文件解释(转载隔壁老梁)
nginx配置文件nginx.conf超详细讲解 #nginx进程,一般设置为和cpu核数一样 worker_processes 4; #错误日志存放目 ...
- [Nginx优化]分享nginx配置文件及优化说明
1.系统及内核方面 根据服务器用途,建议系统最小化安装或针对web服务器进行系统内核重新编译:在内核参数的一些优化,如下: # Add net.ipv4.tcp_max_syn_backlog ...
- 运维之道 | Nginx 配置文件优化解析
Nginx配置文件nginx.conf 1.配置文件位置/usr/local/nginx/conf/nginx.conf 2.nginx 的组成部分 配置文件中有很多#,开头的表示注释内容,我们去掉所 ...
- nginx配置文件优化(详细)
nginx优化项 隐藏nginx版本 nginx 配置项优化 开启高效传输模式 fastcgi 调优 gzip 调优 expires 缓存调优 内核参数优化 系统连接数的优化 准备nginx测试环境 ...
- nginx主配置文件解释
Tengine 主配置文件 Tengine 安装 tar zxvf tengine-2.0.3.tar.gz cd tengine-2.0.3/ ./configure --prefix=/data/ ...
- Nginx安装及配置文件解释
安装nginx,还是在mac上面用brew比较方便. 首先,brew install nginx,提示改权限 sudo chown -R $(whoami) /usr/local 然后brew ins ...
- Nginx高并发系统内核优化
Nginx高并发系统内核优化 Socket优化 Nginx 系统内核 文件优化 Nginx 系统内核 配置文件优化 Nginx配置文件 内核配置文件 PHP7配置文件 PHP-FPM配置文件 php- ...
- Nginx工作原理和优化、漏洞(转)
查看安装了哪些模块命令: [root@RG-PowerCache-X xcache]# nginx/sbin/nginx -V nginx version: nginx/1.2.3 built by ...
- Nginx配置和内核优化 实现突破十万并发
nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议按照cpu数目来指定,一般为它的倍数. worker_cpu_affinity 00000001 00 ...
最新文章
- 做事,兴趣真的很重要!
- php字符串常用算法--字符串加密解密
- OpenStack基金会的白金和黄金成员公司
- 【opencv学习】【Canny边缘检测】
- Linux上更新war包
- 电脑一族,打电脑时候的健康的坐姿
- 高斯主元素消去法c语言,列主元Gauss消去法(C++实现)
- WINDOWS用VS2010开发NPAPI插件步骤
- c++修复工具_别再花钱修复旧照片啦!老照片一键修复工具,独创方法支持PS2020...
- 【Java开发】Java实现黑客帝国代码雨
- 常见反爬虫手段及应对策略
- 大数据apache-spark问题总结
- 安卓APP开发日记1——名为Another的日记APP开发
- qt报错:In included file: expected member name or ‘;‘ after declaration specifiers
- eviews做回归分析时输出值的理解
- 面试题(2020)微信小程序常见面试题
- Java软件测试工程师之学习进阶路线
- 《数据仓库与数据挖掘教程》ch01绪论 章节整理
- Java之手写实现ORM框架
- border-radius的使用
热门文章
- 使用jQuery中trigger()方法自动触发事件
- 取得数组中的随机数random.nextInt(index)
- 分区表自动维护 mysql_Oracle 10g分区表的自动维护
- python 网页自动处理_推荐一款 10 行 Python 代码实现网页自动化工具
- MYSQL二级表的管理_MySQL分区表的管理~2
- 2021年春季学期-信号与系统-第十一次作业参考答案-第六小题
- 第十五届全国大学生智能车全国总决赛获奖信息-浙江赛区
- html,css,js小实例,CSS和JavaScript脚本实例
- python异常处理类源码_Flask源码异常处理问题
- infer的用法_typescript高级用法之infer的理解与使用