Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。其工作原理和配置项如下:
这一部分可以作为公共配置,包含的? ?
??include /etc/nginx/conf.d/*.conf;
可以作为子配置文件引入
#配置用户或者组,默认为nobody
user nginx;
#允许生成的进程数,默认为1,一般配置为cpu核数
worker_processes auto;
#错误日志
error_log /var/log/nginx/error.log notice;
#进程ID
pid /var/run/nginx.pid;
events {
accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on
multi_accept off; #设置一个进程是否同时接受多个网络连接,默认为off
# epoll 模型对事件处理进行优化
use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
#允许最大连接数
worker_connections 5120;
}
#http块
http {
# 相关安全漏洞响应头
# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
add_header X-Content-Type-Options nosniff;
# 检测到目标 X-XSS-Protection响应头缺失
add_header X-XSS-Protection "1; mode=block";
# 检测到目标 Content-Security-Policy响应头缺失
add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
# 检测到目标 Referrer-Policy响应头缺失
add_header Referrer-Policy "no-referrer-when-downgrade" always;
# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
add_header X-Permitted-Cross-Domain-Policies none;
# 检测到目标 X-Download-Options响应头缺失
add_header X-Download-Options noopen;
# 检测到目标 Strict-Transport-Security响应头缺失
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options "SAMEORIGIN";
#隐藏nginx版本信息
server_tokens off;
#文件扩展名与文件类型映射表
include /etc/nginx/mime.types;
#默认文件类型,默认为text/plain
default_type application/octet-stream;
#日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main if=$ignore_ua;
sendfile on;
#tcp_nopush on;
#连接超时时间,默认为75s,可以在http,server,location块。
keepalive_timeout 65;
#gzip on;
client_max_body_size 1024m;
#包含的自定义配置文件块
include /etc/nginx/conf.d/*.conf;
#是否传递4xx和5xx错误信息到客户端,或者允许nginx使用error_page处理错误信息。
fastcgi_intercept_errors on;
#Disable logging for ELB healthcheck. It creates lots of noise on logging platform
##关闭健康检测日志的输出
map $http_user_agent $ignore_ua {
default 1;
"clb-healthcheck" 0;
}
}
?