南宁工程建设网站有哪些,世界新闻,课程网站开发的研究现状,东莞阳光网论坛tip#xff1a;作为程序员一定学习编程之道#xff0c;一定要对代码的编写有追求#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅#xff0c;即使这会费时费力。
推荐#xff1a;体系化学习Java#xff08;Java面试专题#xff09; 文章目录 1、Nginx 配…tip作为程序员一定学习编程之道一定要对代码的编写有追求不能实现就完事了。我们应该让自己写的代码更加优雅即使这会费时费力。
推荐体系化学习JavaJava面试专题 文章目录 1、Nginx 配置文件包含哪些模块2、Core 模块3、Events 模块4、HTTP 模块5、Upstream 模块5、Rewrite 模块6、Access 模块7、SSL 模块 1、Nginx 配置文件包含哪些模块
Nginx 配置文件包含的模块取决于安装的 Nginx 版本和编译选项一般情况下包含以下模块 Core 模块提供 Nginx 的基本功能例如请求处理、反向代理、负载均衡、缓存等。 Events 模块提供事件处理相关的功能例如 I/O 多路复用、定时器、信号处理等。 HTTP 模块提供 HTTP 协议相关的功能例如请求头、响应头、状态码等。 Upstream 模块提供反向代理相关的功能例如负载均衡、后端服务器健康检查等。 Rewrite 模块提供 URL 重写相关的功能例如重定向、路径重写、正则表达式匹配等。 Access 模块提供访问控制相关的功能例如 IP 黑名单、白名单、基于 HTTP Basic 认证的访问控制等。 SSL 模块提供 SSL/TLS 相关的功能例如 HTTPS 支持、SSL 证书配置等。 Cache 模块提供缓存相关的功能例如反向代理缓存、FastCGI 缓存、SCGI 缓存等。 Gzip 模块提供压缩相关的功能例如 Gzip 压缩、Deflate 压缩等。 Real IP 模块提供真实 IP 相关的功能例如获取真实 IP、设置代理服务器的 IP 等。 Headers More 模块提供更多的 HTTP 头部相关的功能例如添加、修改、删除 HTTP 头部等。 Http Sub Module 模块提供响应内容替换相关的功能例如替换 HTML 内容中的字符串等。
2、Core 模块
Core 模块提供 Nginx 的基本功能例如请求处理、反向代理、负载均衡、缓存等。在配置文件中Core 模块的指令都是以“worker_processes”、“worker_connections”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 worker_processes 指令指定了 Nginx 启动时要创建的 worker 进程数量worker_connections 指令指定了每个 worker 进程能够处理的最大连接数
worker_processes 1;
events {worker_connections 1024;
}
http {# 其他模块的配置指令
}3、Events 模块
Events 模块提供事件处理相关的功能例如 I/O 多路复用、定时器、信号处理等。在配置文件中Events 模块的指令都是以“worker_connections”、“use”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 use 指令指定了 Nginx 使用的事件驱动模型epoll 是 Linux 下的一种事件驱动模型
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {# 其他模块的配置指令
}4、HTTP 模块
HTTP 模块提供 HTTP 协议相关的功能例如请求头、响应头、状态码等。在配置文件中HTTP 模块的指令都是以“server”、“location”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 server 指令指定了监听的端口和虚拟主机的配置location 指令指定了请求的 URL 匹配规则和对应的处理方式
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {server {listen 80;server_name example.com;location / {proxy_pass http://127.0.0.1:8080;}}
}5、Upstream 模块
Upstream 模块提供反向代理相关的功能例如负载均衡、后端服务器健康检查等。在配置文件中Upstream 模块的指令都是以“upstream”、“server”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 upstream 指令指定了后端服务器的列表和负载均衡策略server 指令指定了后端服务器的 IP 地址和端口
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {upstream backend {server 127.0.0.1:8080;server 127.0.0.1:8081;server 127.0.0.1:8082;# 负载均衡策略# ...}server {listen 80;server_name example.com;location / {proxy_pass http://backend;}}
}5、Rewrite 模块
Rewrite 模块提供 URL 重写相关的功能例如重定向、路径重写、正则表达式匹配等。在配置文件中Rewrite 模块的指令都是以“rewrite”、“if”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 rewrite 指令将所有以 /foo 开头的 URL 重定向到 /barif 指令用于判断请求头中的 User-Agent 字段
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {server {listen 80;server_name example.com;location / {if ($http_user_agent ~* (MSIE|Trident)) {rewrite ^/foo(.*)$ /bar$1 permanent;}# 其他处理方式# ...}}
}6、Access 模块
Access 模块提供访问控制相关的功能例如 IP 黑名单、白名单、基于 HTTP Basic 认证的访问控制等。在配置文件中Access 模块的指令都是以“allow”、“deny”、“auth_basic”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 allow 指令允许指定 IP 地址的访问deny 指令拒绝指定 IP 地址的访问auth_basic 指令启用 HTTP Basic 认证
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {server {listen 80;server_name example.com;location / {allow 192.168.0.1;deny 192.168.0.2;auth_basic Restricted;auth_basic_user_file /etc/nginx/.htpasswd;# 其他处理方式# ...}}
}7、SSL 模块
SSL 模块提供 SSL/TLS 相关的功能例如 HTTPS 支持、SSL 证书配置等。在配置文件中SSL 模块的指令都是以“ssl_certificate”、“ssl_certificate_key”等形式出现的。
例如以下是一个简单的 Nginx 配置文件其中 ssl_certificate 指令指定了 SSL 证书的路径ssl_certificate_key 指令指定了 SSL 证书的私钥路径
worker_processes 1;
events {worker_connections 1024;use epoll;
}
http {server {listen 443 ssl;server_name example.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;# 其他处理方式