使用NGINX自定义域名
了解如何设置 NGINX 作为您 Framer 网站的反向代理,以提升性能、安全性和可见性。
首先,在您的 /etc/nginx/sites-available/default
文件中更新您的 server
块,使用以下配置:
server {
listen 80; # 监听端口 80 (HTTP)
server_name example.com www.example.com; # 您的域名
resolver 8.8.8.8; # DNS 解析器地址(例如 Google DNS)
location / {
set $backend https:
proxy_pass $backend$request_uri; # 将请求代理到您的 Framer 网站,保留原始请求 URI
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置真实客户端 IP 头
proxy_set_header X-Forwarded-Proto $scheme; # 设置客户端原始协议头 (HTTP/HTTPS)
proxy_ssl_server_name on; # 启用 SNI (至关重要!详见下文)
}
}
此设置将传入的请求转发给您托管在 Framer 上的网站,同时在浏览器地址栏中保留您配置的域名(如 example.com
)。
如果您只想代理某些特定路径(例如 /blog
或 /pricing
),只需添加或修改特定的 location
块:
location /my-path { # 指定要代理的路径,如 /blog
set $backend https:
proxy_pass $backend; # 将请求代理到您的 Framer 网站(注意:这里使用的是 $backend,不带 $request_uri,路径 /my-path 会传递给后端)
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_ssl_server_name on; # 启用 SNI
}
这样,您可以更精确地控制哪些流量需要被转发到 Framer。
为什么需要 proxy_ssl_server_name on;
此指令确保 NGINX 使用 SNI (Server Name Indication) 技术向目标服务器(即您的 Framer 网站)发送正确的主机名 (hostname)。如果不启用此选项,在将请求转发到自定义域名时,您很可能会遇到 400 Bad Request: Invalid hostname
错误。
为了保护您的用户并加密流量,启用 HTTPS 非常重要。以下是几种设置 SSL 的常见方法:
使用 Certbot 获取 Let's Encrypt 证书 (推荐):
免费且自动化。
Certbot 与 NGINX 集成,可为您处理 SSL 证书的获取和自动续期。
查看 Certbot 官方文档获取分步指南。
使用现有证书:
如果您已有来自 DigiCert、Sectigo 或其他提供商的 SSL 证书。
只需使用 ssl_certificate
和 ssl_certificate_key
指令,在 NGINX 配置中指向您的证书文件 (.crt/.pem) 和私钥文件 (.key) 路径。
例如:
listen 443 ssl;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/private.key;
使用自签名证书 (仅测试或内部使用):
适用于开发测试或仅供内部网络访问的场景。
重要警告:浏览器会显示安全警告,访问体验不佳。
不推荐用于生产环境 (Production Sites)。