worker_processes 2;
error_log logs/error.log notice;
events {
worker_connections 8192;
}
http {
include mime.types;
default_type application/octet-stream;
#定义access日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'
'$upstream_addr $upstream_response_time $request_time';
#<连接限制模块
#基于客户端ip地址定义一个tcp连接池,内存大小为20m
limit_conn_zone $http_x_forwarded_for zone=ylw_conn:20m;
#基于客户端ip地址定义一个http连接池,内存大小为20m,限制一秒中内只允许同一个ip发起300个http请求
limit_req_zone $http_x_forwarded_for zone=ylw_req:20m rate=300r/s;
#超过限制的http连接返回599状态码
limit_req_status 599;
#错误日志级别改为warn
limit_req_log_level warn;
#连接限制模块>
#<通用配置参数
#不允许任何域名iframe,包括相同的域名,防止点击劫持 (clickjacking) 攻击
add_header X-Frame-Options DENY;#经过测试发现,该参数配在http段时,好像不生效
#开启高效文件传输模式
sendfile on;
#设置tcp连接空闲时间为75s
keepalive_timeout 75s;
#隐藏nginx版本号
server_tokens off;
#关闭nginx目录浏览功能
autoindex off;
#指定客户端与服务端建立连接后发送request body的超时时间
client_body_timeout 20s;
#客户端向服务端发送一个完整的request header的超时时间
client_header_timeout 10s;
#服务端向客户端传输数据的超时时间
send_timeout 30s;
#>
server {
listen 80;
server_name ylw;
#客户端最大传输的内容为500m
client_max_body_size 500M;
#取消http头部报文对下划线的拦截。默认匹配到下划线时,会去掉下划线。
underscores_in_headers on;
#防止xss攻击。0表示关闭浏览器xss防护机制;1表示开启,浏览器默认为1,“1; mode=block”表示检查到恶意代码时,在不渲染恶意代码
add_header X-Xss-Protection 1;
#不允许任何域名iframe,包括相同的域名,防止点击劫持 (clickjacking) 攻击。注:有的业务会用到iframe,注意该参数设置会不会对业务造成影响。
add_header X-Frame-Options DENY;
#<反向代理通用配置
#该参数表示nginx能够捕捉到反向代理连接的错误状态码,注意该参数,下面会提到该参数
proxy_intercept_errors on;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
proxy_set_header Connection "";
#>
#当状态码为400时,给用户返回到错误页面。这里涉及到代理的配置,如果反向代理中第一个参数没有设置,那么下面参数对反向代理的连接不生效。
error_page 400 /server_error;
#<连接限制
#调用http段定义的tcp连接池,一秒钟内只允许同一个$http_x_forwarded_for值发起100个tcp连接
limit_conn ylw_conn 100;
#调用http段定义的http连接池,缓冲队列为50个连接
limit_req zone=ylw_req burst=50 nodelay;
#开启连接限速功能,最大下载速度为500K/s。该参数只能针对单个连接,如果同一个ip有多个连接,那么下载速度为n*500k
limit_rate 500k;
#与上面那个参数配合使用,表示超过20m才启限速
limit_rate_after 20m;
#>
#防盗链,防伪造站点攻击,防恶意请求。后面的location配置会用到该变量,当http请求头中Referer为空或者为白名单中的值时,valid_referers为false。
valid_referers none blocked 域名或ip;
#设置错误页面
location ^~ /server_error {
return 500;
}
location / {
root /home/www/web;
index index.html index.htm;
#html页面浏览器不缓存
if ($request_filename ~* \.html$){
expires -1;
}
#静态资源浏览器缓存时间为永久
if ($request_filename ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$){
expires max;
}
}
location ^~ /xxx {
#当invalid_referer为true时,返回403
if ($invalid_referer){
return 403;
}
proxy_pass http://127.0.0.1:9090/;
}
}
}
nginx配置文件模板
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前往https://www.jianshu.com/p/fbb967b0670a直接复制代码 #4核8g机器的ng...
- Nginx 配置文件 本方法的优点在于只修改两处位置(网站域名、网站路径即可使用) server { # [改...
- 使用ansible的template模块 渲染jinja2模板中的内容,结果以文件形式生成在远程主机指定目录,如下...
- 点击链接加入QQ群138269539(全国招聘信息、免费公开课、视频应有尽有):https://jq.qq.com...