本篇主要学习一下nginx的配置,废话不多说,找到nginx安装目录里的nginx.conf。
# 指定Nginx进程运行的用户,通常是 nginx 用户。这是一个安全措施,以确保Nginx进程以较低的特权级别运行。
user nginx;
# 表示Nginx会自动根据可用的CPU核心数量启动多个工作进程来处理请求
worker_processes auto;
# 指定Nginx的错误日志文件的路径和日志级别。在这个示例中,错误日志的级别设置为 notice
error_log /var/log/nginx/error.log notice;
# 指定Nginx主进程的PID文件路径
pid /var/run/nginx.pid;
events {
worker_connections 1024; # 设置每个工作进程能够同时处理的最大连接数
}
http {
#设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
include /etc/nginx/mime.types; # 引入了 MIME 类型配置文件,用于指定文件扩展名与 MIME 类型的映射关系
# 如果请求的文件类型无法匹配到具体的MIME类型,将使用 application/octet-stream 作为默认的MIME类型。
default_type application/octet-stream;
# 定义了访问日志的格式,其中包含了各种请求信息,如客户端IP、请求时间、请求内容等
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;
# 启用了 sendfile 功能,它可以加速文件传输
sendfile on;
# tcp_nopush on;
# 设置了Keep-Alive超时时间,即HTTP长连接的超时时间
keepalive_timeout 65;
# gzip on;
# 引入了 /etc/nginx/conf.d/ 目录下的所有 .conf 文件,通常这些文件包含了虚拟主机配置和其他站点配置
include /etc/nginx/conf.d/*.conf;
}
实际应用中通常我们是要再拆出一个配置文件专门对server模块进行配置,这样更加清晰。
创建个default.conf
server {
# listen 80; 和 listen [::]:80; 这两行配置指示Nginx监听HTTP请求的80端口,分别支持IPv4和IPv6。这是Web服务器默认的HTTP端口。
listen 80;
listen [::]:80;
# 这里指定了虚拟主机的域名,这里是localhost。这意味着这个虚拟主机会响应访问localhost的HTTP请求。
server_name localhost;
# access_log /var/log/nginx/host.access.log main;
# 这是一个配置块,定义了对于根路径 / 的请求应该如何处理。
location / {
# 这指定了Nginx应该在响应这个虚拟主机的请求时从哪里获取文件。在这里,文件将从/usr/share/nginx/html目录中获取。
root /usr/share/nginx/html;
# 这里列出了默认的索引文件。如果请求的URL以 / 结尾,Nginx将尝试查找并提供 index.html 或 index.htm 文件。
index index.html index.htm;
}
# error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
# 这些配置定义了当发生500系列错误时,Nginx应该显示一个自定义的错误页面 50x.html。这个错误页面位于/usr/share/nginx/html目录下。
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# add_header Cache-Control "no-cache"; #设置协商缓存
limit_req_zone $binary_remote_addr zone=ddos:10m rate=10r/s; #防DDoS配置
}
防ddos配置
limit_req_zone: 这是一个Nginx指令,用于定义一个请求限制区域。这个区域用来记录每个客户端的请求频率信息。
$binary_remote_addr: 这是一个Nginx变量,表示客户端的IP地址。每个不同的IP地址都会被视为一个单独的客户端。
zone=ddos:10m: 这个部分定义了请求限制区域的名称为"ddos",并分配了10兆字节的内存空间(10m)来存储相关数据。
rate=10r/s: 这部分规定了请求速率限制。它表示每个IP地址最多允许发送10个请求每秒(10r/s)。
缓存
这个是一大块东西篇幅比较长,另起一篇再说吧
- THE END -
最后修改:2024年8月6日
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:https://mi-blog.cn/index.php/2020/05/07/nginx%e5%ad%a6%e4%b9%a0%e7%af%87%ef%bc%88%e4%b8%89%ef%bc%89/