-
Nginx 核心应用场景与实操指南
Nginx(发音 "engine x")是一款高性能的HTTP / 反向代理服务器、负载均衡器、静态资源服务器,同时支持邮件代理、缓存、SSL 终结等能力,因轻量、高并发、低内存占用的特性,成为互联网架构中不可或缺的核心组件。以下是 Nginx 最核心的应用场景及落地实操: 一、核心应用场景 1:静态资源服务器(最基础) Nginx 处理静态文件(HTML/CSS/JS/ 图片 / 视频)的性能远超 Tomcat/Java 容器,是静态资源分发的首选。 核心配置(nginx.conf) nginx http { include mime.types; # 识别文件类型(如 .html/.jpg) default_type application/octet-stream; server { listen 80; # 监听 80 端口 server_name static.example.com; # 域名(可替换为 IP) # 静态资源根目录 root /usr/local/nginx/html; index index.html index.htm; # 优化静态资源缓存(浏览器缓存,减少重复请求) location ~* \.(jpg|png|css|js)$ { expires 7d; # 缓存 7 天 add_header Cache-Control "public, max-age=604800"; } # 禁止访问隐藏文件(如 .htaccess) location ~ /\.ht { deny all; } } } 关键优化 开启 sendfile on;(零拷贝,减少磁盘 IO 与内核交互); 配置 gzip on;(压缩静态资源,减少传输体积); 大文件(如视频)配置 client_max_body_size 100M; 避免上传 / 访问限制。 二、核心应用场景 2:反向代理(解耦前端与后端) 反向代理是 Nginx 最核心的能力之一:客户端请求 Nginx,Nginx 转发到后端应用服务器(Tomcat/Java/Python),隐藏后端服务地址,同时实现请求过滤、……
SE_Yang 2025-12-09
16 0 0 -
nginx配置反向代理服务器,实现在https网站中请求http资源
一、前言 Nginx反向代理是一种将客户端请求转发到后端服务器的技术,主要用于负载均衡、提高安全性和提升性能。与正向代理不同,反向代理隐藏了后端服务器的真实地址,客户端与之交互时只知道反向代理服务器的地址。 二、Nginx反向代理的工作原理 当客户端发送请求到反向代理服务器时,Nginx 会接收这些请求,并根据配置将请求转发到后端的真实服务器上。Nginx 可以将多个请求分发到多个后端服务器,从而实现负载均衡,提高系统的并发处理能力和可用性。常见的负载均衡算法有轮询、IP 哈希、最少连接等。 三、Nginx反向代理的主要功能 负载均衡:Nginx 可以通过反向代理实现负载均衡,将请求分发到多个后端服务器上,从而提高系统的并发处理能力和可用性。 缓存加速:Nginx 可以缓存静态资源或动态页面,减少后端服务器的负载,提高响应速度。通过设置缓存时间、缓存规则等参数,可以灵活地控制缓存策略。 SSL终端:Nginx 可以作为 SSL 终端,接收 HTTPS 请求并进行 SSL/TLS 解密,然后将解密后的请求转发给后端服务器,减轻后端服务器的负担,提高安全性和性能。 安全过滤:Nginx 可以通过反向代理实现安全过滤功能,例如防止恶意请求、DDoS 攻击、SQL 注入等。通过配置访问控制规则、限制请求频率等方式,可以提高系统的安全性。 四、Nginx反向代理的配置和使用场景 Nginx 的反向代理功能通过配置文件进行配置,配置文件包含了全局配置、http配置和 server 配置等部分,可以设置监听端口、代理规则、缓存配置、负载均衡策略等。Nginx 具有高性能的特点,采用异步非阻塞的事件驱动模型,可以处理大量并发连接,同时内存消耗较低,适合在资源有限的环境中使用。 五、实战配置 网站使用 nginx 作为服务器,协议从 http 升级为 https 的注意事项。 5.1 首先,修改宝塔面板配置 选择配置文件,http 请求……
SE_Meng
2025-04-15
80 0 0 -
Nginx代理到https地址忽略证书验证配置
Nginx代理到https地址忽略证书验证配置,不推荐在生产环境中使用 在配置中增加: proxy_ssl_server_name on; proxy_ssl_session_reuse ; Nginx在与后端服务器建立SSL/TLS连接时,将使用请求头中的Host字段值作为SNI的一部分,并且不会重用SSL/TLS会话。这种配置可能在特定场景下是有用的,但通常建议保持proxy_ssl_session_reuse为on以提高性能。 location /test/ { proxy_pass https://www.baidu.com/; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_ssl_server_name on; proxy_ssl_session_reuse off; } proxy_ssl_server_name 当proxy_ssl_server_name设置为on时,Nginx会在与后端服务器建立SSL/TLS连接时,使用请求头中的Host字段值作为SNI(Server Name Indication)的一部分。SNI是SSL/TLS扩展,它允许客户端在握手过程中指示它想要连接的服务器的主机名。这对于那些托管在单个IP地址上的多个SSL/TLS证书的后端服务器来说非常重要,因为SNI允许服务器根据请求的主机名选择正确的证书。 如果proxy_ssl_server_name未设置或设置为off,Nginx将不会使用Host头部值作为SNI的一部分,这可能会导致SSL/TLS握手失败,特别是当后端服务器期望SNI时。 proxy_ssl_session_reuse proxy_ssl_session_reuse指令控制Nginx是否重用与后端服务器之间的SSL/TLS会话。当设置为off时,Nginx不会在多个请求之间重用SSL/TLS会话。这意味着每次Nginx与后端服务器建立连接时,都会进行完整的SSL/TLS握手过程,这可能会增加延迟和服务器负载。 相反,当proxy_ssl_session_reuse设置为on(这是默认值……
SE_Yang 2024-11-18
163 0 0 -
Ubuntu 系统下安装 Nginx
Nginx是什么 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。 二、Ubuntu 系统下安装 Nginx 1、安装包下载 地址:https://nginx.org/download/ 2、上传服务器并解压缩 tar -zxvf nginx-1.16.1.tar.gz 3、依赖配置安装 sudo apt install gcc make libpcre3-dev zlib1g-dev openssl libssl-dev 4、生成编译脚本 ./configure --prefix=/usr/local/nginx --with-http_ssl_module 5、编译 make 编译完成: 6、开始安装 make install 查看是否安装成功: 7、设置为随机自启动 7.1、创建 nginx.service 文件,将以下内容粘贴到文件中 Description=nginx - high performance web server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop [Install] WantedBy=multi-user.target 7.2、将 nginx.service 放入 /etc/systemd/system/ 下,并授权 chmod 777 nginx.service 7.3、配置重新加载 systemctl daemon-reload 7.4、开启Nginx随机自启服务 systemctl enable nginx.service 7.5、 启动Nginx systemctl start nginx.service 7.6、查看服务状态 systemctl status nginx.service ⚠️⚠️⚠️若发现以下错误,这是因为 80 端口已经被其他进行占用导致 Nginx 无法绑定到 80 端口上,可尝试查询端口占用进程并终止该进程。 原文链接:https://blog.csdn.net/ZhangXS9722/article/details/137098271
SE_Meng
2024-09-02
199 0 0
