Nginx学习篇(三)

米阳 2020-5-7 233 5/7

本篇主要学习一下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 -
Tag:

米阳

8月06日14:05

最后修改:2024年8月6日
0

非特殊说明,本博所有文章均为博主原创。