标签

#nginx

4 篇文章

api-开发fastapigcpgithubk8smcpnginxopenairag上下文医学向量对话代码流式爬虫环境配置
服务器与部署
1 分钟

Nginx 配置 非域名 443 端口的自签证书

这是一篇面向 Nginx HTTPS 默认入口的防探测配置笔记,目标是处理直接通过服务器 IP 访问 443 端口时可能暴露真实站点证书信息的问题。做法先使用 OpenSSL 生成一个有效期较长、CN 设置为 AccessDenied 的自签证书,并把生成的 fake.crt 与 fake.key 放到 Nginx 可读取的位置。随后在 default 配置中声明同时监听 80 和 443 的 default_server,用 server_name _ 承接未匹配到具体域名的请求,并将该默认虚拟主机绑定到这张“假证书”。这样扫描器或访问者如果不带正确域名访问 IP,在 TLS 阶段看到的不是生产站点证书,而是自签证书中的 AccessDenied;连接建立后,Nginx 再通过 return 444 直接断开请求。文章还给出一个验证思路:到 Censys 按 IP 搜索,检查公开扫描结果中是否仍能反查到真实域名。该配置适合希望降低证书透明度、互联网扫描或 IP 反查带来的域名暴露风险的运维与站点维护者,但它只针对默认入口和证书展示层面,不能替代完整的访问控制与资产隐藏策略。

nginx
服务器与部署
6 分钟

基于软链接的 nginx 管理 server 模块

这份笔记围绕 Nginx 多站点配置的模块化管理展开,核心做法是用软链接把“已编写的配置”和“当前生效的配置”分离。正文将 /etc/nginx/sites-available/ 定位为配置仓库,用来保存所有 server 文件、草稿、备份或暂时下线的网站;将 /etc/nginx/sites-enabled/ 作为实际加载目录,只放指向仓库文件的软链接,并通过 nginx.conf 在 http 段 include 该目录来决定哪些站点生效。文章给出了一份基础 nginx.conf 示例,包含事件连接数、日志、gzip、Keep-Alive、SSL 全局参数,以及同时加载 conf.d 和 sites-enabled 的关键配置。随后以一个 HTTPS 探针站点为例,展示 server 块如何配置证书、server_name、反向代理到 localhost:25774,并补充真实 IP、转发协议、WebSocket Upgrade、关闭代理缓冲和 50M 上传限制等常见代理设置。启用流程则被简化为脚本:使用 ln -sf 将 sites-available 下的配置批量链接到 sites-enabled,再执行 nginx -t 校验,通过后 reload 服务。它适合小型服务器或个人多站点环境,用较低成本实现站点配置的归档、迁移、批量启用和下线控制;需要注意的是,真正被 Nginx 读取的是 include 的 enabled 目录,单独把文件放进 available 并不会生效。

nginx
服务器与部署
7 分钟

Nginx 配置防火墙

这篇笔记围绕 Nginx 在反向代理和 Cloudflare 接入场景下的访问控制配置展开,核心问题是如何在使用真实客户端 IP 的同时避免错误信任可伪造的请求头。文中先给出一种粗糙写法:在 server 中将 set_real_ip_from 设为 0.0.0.0/0,并通过 real_ip_header CF-Connecting-IP 改写 remote_addr,再配合 allow 与 deny all 做访问限制;但这种做法等于让任意来源都能提交 CF-Connecting-IP,攻击者可借此伪造来源地址。文章解释了 Nginx 默认情况下 remote_addr 代表 TCP 连接源 IP,未启用 real_ip 时相对可信,而一旦信任范围放得过宽,就会主动放弃这一安全边界。更稳妥的方案是从 Cloudflare 官方 IPv4、IPv6 地址接口拉取网段,生成 cloudflare_real_ip.conf,逐行写入 set_real_ip_from,并配置 real_ip_header 与 real_ip_recursive。随后可在 http 块全局 include,或在单个 server 块中按站点生效,更新脚本执行后通过 nginx -t 校验并 reload 服务。文中还提醒 allow 规则按顺序匹配,deny all 会直接拒绝并返回 403;如果 VPS 同时具备 IPv4 和 IPv6,放行列表也要同时覆盖两类地址。最后通过 crontab 每周自动刷新 Cloudflare 网段,适合需要在 Nginx、Cloudflare 和反向代理链路中正确处理真实 IP 与访问白名单的运维或后端开发者参考。

nginx
服务器与部署
1 分钟

nginx 配置密码

这份配置记录面向那些 Docker 镜像本身没有账号密码、但又不适合直接开放给公网访问的服务,核心思路是在端口暴露和反向代理两层同时收紧入口。服务侧先在 docker-compose 的 ports 中使用 127.0.0.1:3033:8081 这种绑定方式,让容器端口只接受本机访问,避免外部绕过 Nginx 直接连到后端。随后在服务器上安装 apache2-utils,并通过 htpasswd -c /etc/nginx/.htpasswd admin 创建基础认证所需的账号密码文件。Nginx 配置部分则是在对应的 location / 代理块中加入 auth_basic 和 auth_basic_user_file,前者开启浏览器弹窗式的 Basic Auth,后者指定刚生成的密码文件。完成修改后执行 systemctl reload nginx 重新加载配置,即可让访问该反向代理路径的用户先通过密码验证。它适合临时保护管理后台、自用工具或轻量服务,但前提是请求确实都经过 Nginx,且后端端口不要再以 0.0.0.0 形式暴露。

nginx