NGINX 服务器块生成器
指导
NGINX 服务器块生成器
从一个简单的表单构建一个可直接粘贴的NGINX服务器块。选择一个端口,选择是提供静态文件还是代理到后端服务,并启用SSL、HTTP/2、gzip以及HTTP到HTTPS的重定向。输入时输出会自动更新,可以直接用于 /etc/nginx/sites-available/ 大多数发行版中。
如何使用
- 输入主要 服务器名称 (例如
example.com)以及任何额外的别名,如www.example.com. - 选择 监听端口 ——通常
80用于HTTP。当启用SSL时,端口将自动替换为443 ssl。 - 选择一个 模式: 静态文件 显示文档根目录和索引文件字段,而 反向代理 则显示一个带有可选WebSocket头转发的上游URL字段。
- 切换 启用SSL 以添加证书路径、HTTP/2以及自动HTTP到HTTPS重定向块。
- 调整 附加选项 如gzip压缩、客户端最大体大小以及访问/错误日志路径。
- 使用 复制 或 下载 输出部分的按钮以获取配置。
特征
- 静态或反向代理模式 ——在从文档根目录提供文件和将请求转发到上游服务之间进行切换。
- SSL辅助功能 ——一个开关可添加
ssl_certificate,ssl_certificate_key、现代TLS协议、可选的HTTP/2以及独立的HTTP到HTTPS重定向服务器块。 - WebSocket感知代理 ——反向代理模式可发出WebSocket和服务器发送事件后端所需的
Upgrade且Connection头。 - 生产安全默认值 ——合理的
X-Forwarded-*头、gzip MIME类型、IPv6监听器以及可配置的client_max_body_size、访问日志和错误日志路径。 - 实时预览 ——每次输入更改时,输出都会自动重新生成,并提供复制和下载按钮以快速部署。
常问问题
-
什么是NGINX服务器块?
服务器块是NGINX的Apache虚拟主机等效物。它将决定NGINX如何响应特定主机名和端口请求的指令分组:要提供哪些文件、如何代理流量、使用哪个TLS证书以及写入哪些日志。NGINX通过将请求的
Host头和监听套接字与块的server_name且listen”) 指令。 -
进行比较来匹配一个传入请求到一个服务器块。
NGINX如何在静态文件和反向代理之间进行选择?
location行为是按root加上try_files且index决定的。静态文件位置使用proxy_pass在磁盘上查找文件;反向代理位置使用 -
将请求转发到另一个地址上的HTTP。NGINX本身不会自动检测意图——您需要通过编写适当的指令来选择模式,而NGINX则简单地运行与请求URI匹配的块。
为什么使用HTTP/2而不是HTTP/1.1?
-
HTTP/2通过单个TCP连接并行传输多个请求,以压缩二进制形式(HPACK)发送头信息,并支持服务器推送。实际上,这减少了头部阻塞并降低了从同一来源加载多个资源页面的延迟。由于浏览器要求HTTP/2使用TLS,因此它与SSL在同一个监听器上启用。
NGINX的
gzip模块在响应体离开服务器前对其进行压缩,使用DEFLATE并可配置级别。它在文本类MIME类型(如HTML、CSS、JavaScript、JSON、XML、SVG)上效果最佳,对已压缩的格式(如JPEG、PNG或视频)则无操作。NGINX通过Vary: Accept-Encoding头向客户端宣布支持,以便缓存可以存储压缩和未压缩的副本。 -
当代理时,X-Forwarded-For的作用是什么?
当请求通过反向代理时,上游服务看到的是代理的IP地址作为客户端。头保留了原始客户端地址链,而
X-Forwarded-For仅记录直接客户端。结合X-Real-IP,后端可以重建真正的访客是谁以及他们是否通过HTTPS连接,这对于准确的速率限制、访问控制和分析至关重要。X-Forwarded-Proto,它们让后端能够重建真实访问者的身份,并判断其是否通过HTTPS连接,这对于准确的速率限制、访问控制和分析至关重要。
