关于nginx的功能--提问未完成
配置listen监听:统一服务访问的ip(ip可以不统一,比如配置0.0.0.0,或者不写,表示nginx服务器上的所有IP)和端口的访问,然后转发给后端,隐藏后端的ip+端口。(协议和端口标准化)
将Nginx和后端部署在不同服务器上,前端用Nginx统一IP+端口监听请求,然后转发给各个后端服务器,可以实现服务器的负载均衡,还能彻底隐藏后端真实IP,可实现内外网隔离。
静态资源高效服务:Nginx服务CSS/JS的性能远高于Node.js、Python、Java,可以减轻后端负担,提升页面加载速度。(问题1:为什么它的性能很高呢?)
配置location URI:特定URI可配置仅允许密码认证+内网,allow/deny IP白名单。
配置allow/deny:拦截外网对特定URI如/admin等的访问,放行特定安全IP如公司内网IP。
配置Basic Auth:防止为授权用户直接看到特定URI路径。
配置limit_req:限流,防止暴力破解。
CDN和WAP集成:可以更灵活集成。(问题2:怎么集成,怎么做到?)
配置统一HTTPS证书:HTTPS请求统一拦截后转发到后端,后端无需再配置HTTPS,所有来自用户的HTTPS请求会被Nginx解析成明文的HTTP请求(proxy_pass),然后发给后端,告诉后端原始请求时HTTPS(proxy_set_header X-Forwarded-Proto $scheme;)。
Nginx可以监听443 ssl,然后加载Let's Encrypt或者商业证书(用ssl_certificate),配置强TLS协议(用ssl_protocols),设置请求响应安全头用add_header(HSTS、X-Frame-Options、MIME嗅探禁用、CSP等),自动续签证书(配合cerbot),启用HTTP/2、OSCP Staping等高级特性。
Serverless/FasS如(AWS Lambda + API Gateway,网关承担Nginx责任),容器化且有Ingress控制器(如Kubernetes中的Ingress-Nginx,本质上还是Nginx)这些情况下无需使用Nginx了。
问题3:Traefik/Caddy是什么?
问题4:Serverless/FasS怎么做?
问题5:Kubernetes中的Ingress-Nginx怎么做?
问题6:如果Nginx代理的后端服务器不在内网,是跨公网的,需要用mTLS或者内网加密(如WireGuard),怎么做?

浙公网安备 33010602011771号