常见Nginx的中间件架构(二)

本文详细介绍了Nginx作为代理服务器的配置方法,包括反向代理与正向代理的设置,以及如何配置缓冲区、跳转重定向、头信息、超时等参数,帮助读者深入了解Nginx的代理服务功能。

#常见Nginx的中间件架构
#二、代理服务
#配置
Syntax: proxy_pass URL;
Default : ——
Context:location,if in location,limit_except

#例1:(反向代理):
#location ~ /test_proxy.html$ {
#    proxy_pass http://127.0.0.1:8080;
#}

#例2:(正向代理)
# resolver 8.8.8.8;
#    location / {  
#        proxy_pass http://$http_host$request_uri;
#    }  


#******************************其他***********************************

#缓冲区
Syntax: proxy_buffering on|off;
Default : proxy_buffering on;
Context:http,server,location
#其他 proxy_buffer_size、proxy_buffers、proxy_busy_buffers_size

#跳转重定向
Syntax: proxy_redirect default;
proxy_redirect off;proxy_redirect redirect replacement;
Default : proxy_redirct default;
Context:http,server,location

#头信息
Syntax: proxy_set_header field value;
Default : proxy_set_header Host $proxy_host;proxy_set_header Connection close;
Context:http,server,location
#拓展proxy_hide_header、proxy_set_body

#超时
Syntax: proxy_connect_timeout time;
Default : proxy_connect_timeout 60s;
Context:http,server,location
#拓展  proxy_read_timeout、proxy_send_timeout


#例:
#proxy_redirect default;
#
#proxy_set_header Host $http_host;
#proxy_set_header X-Real-IP $remote_addr;
#
#proxy_connect_timeout 30;
#proxy_send_timeout 60;
#proxy_read_timeout 60;
#
#proxy_buffer_size 32k;
#proxy_buffering on;
#proxy_buffers 4 128k;
#proxy_busy_buffers_size 256k;
#proxy_max_temp_file_size 256k;

### Nginx 中间件面试常见问题解析 #### 1. Nginx 的基础架构与工作原理 Nginx 采用事件驱动的异步非阻塞架构,能够高效处理高并发请求。其核心模块包括 HTTP 模块、事件模块、邮件模块等。Nginx 通过 master-worker 模型管理进程,其中 master 进程负责管理 worker 进程,而 worker 进程则负责处理具体的网络请求。这种架构使得 Nginx 能够充分利用多核 CPU 资源,提升性能。 ```nginx worker_processes auto; events { worker_connections 1024; } ``` 该配置展示了如何设置 worker 进程数量以及每个 worker 可处理的最大连接数,体现了 Nginx 的并发处理能力[^1]。 #### 2. 反向代理与负载均衡 Nginx 常用于实现反向代理与负载均衡,其通过 `upstream` 模块定义后端服务器组,并结合 `proxy_pass` 指令实现请求转发。常见的负载均衡算法包括轮询(默认)、加权轮询、最少连接数(least_conn)、IP 哈希(ip_hash)等。 ```nginx upstream backend { least_conn; server 127.0.0.1:8080 weight=3; server 127.0.0.1:8081; } server { listen 80; location / { proxy_pass http://backend; } } ``` 上述配置展示了如何使用最少连接数算法进行负载均衡,并通过 `weight` 参数实现加权轮询[^1]。 #### 3. 静态资源服务与缓存机制 Nginx 可以高效地处理静态资源请求,如 HTML、CSS、JS、图片等。通过配置 `location` 块,可以定义静态资源的根目录,并结合 `expires` 指令设置缓存策略,提升页面加载速度。 ```nginx location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ { root /data/static; expires 30d; add_header Cache-Control "public, no-transform"; } ``` 此配置通过设置 `expires` 和 `Cache-Control` 头部,实现浏览器缓存控制,减少服务器负载[^1]。 #### 4. 安全性与访问控制 Nginx 提供多种安全机制,包括 IP 白名单、Basic Auth、限制请求方法等。例如,使用 `allow` 和 `deny` 指令可以限制特定 IP 地址的访问权限,而 `auth_basic` 指令则可以实现基于用户名和密码的认证。 ```nginx location /admin { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; allow 192.168.1.0/24; deny all; } ``` 该配置结合了 Basic Auth 和 IP 白名单,增强后台管理接口的安全性[^1]。 #### 5. 高级功能与性能调优 Nginx 支持 SSL/TLS 加密、WebSocket、HTTP/2、Gzip 压缩等高级功能。此外,通过调整 `keepalive`、`sendfile`、`tcp_nopush`、`tcp_nodelay` 等参数,可以进一步优化网络传输性能。 ```nginx http { gzip on; gzip_types text/plain application/json; keepalive_timeout 65; sendfile on; tcp_nopush on; tcp_nodelay off; } ``` 上述配置启用了 Gzip 压缩、保持连接、零拷贝传输等优化策略,提升传输效率[^1]。 ####
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值