Files
font2pic/fonts.conf
2026-02-08 18:28:39 +08:00

105 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Font2SVG - Nginx 配置fonts.biboer.cn
# 用途:为微信小程序提供 fonts.json 与字体文件静态托管
server {
listen 80;
listen [::]:80;
server_name fonts.biboer.cn;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name fonts.biboer.cn;
# Certbot 证书
ssl_certificate /etc/letsencrypt/live/fonts.biboer.cn/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/fonts.biboer.cn/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# 静态资源根目录(需包含 fonts.json 与 fonts/ 目录)
root /home/gavin/font2svg;
index fonts.json;
access_log /var/log/nginx/font2svg_access.log;
error_log /var/log/nginx/font2svg_error.log;
server_tokens off;
# 小程序跨域访问
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET,HEAD,OPTIONS" always;
add_header Access-Control-Allow-Headers "Origin,Range,Accept,Content-Type" always;
add_header Access-Control-Expose-Headers "Content-Length,Content-Range" always;
# MIME
types {
application/json json;
font/ttf ttf;
font/otf otf;
font/woff woff;
font/woff2 woff2;
application/vnd.ms-fontobject eot;
}
# SVG 渲染 API独立 Python 服务)
location /api/ {
proxy_pass http://127.0.0.1:9300;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_connect_timeout 5s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
# fonts.json短缓存便于更新
location = /fonts.json {
expires 1h;
add_header Cache-Control "public, must-revalidate";
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET,HEAD,OPTIONS" always;
add_header Access-Control-Allow-Headers "Origin,Range,Accept,Content-Type" always;
add_header Access-Control-Expose-Headers "Content-Length,Content-Range" always;
try_files $uri =404;
}
# 字体文件:长缓存
location ~* \.(ttf|otf|woff|woff2|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
add_header Access-Control-Allow-Origin "*" always;
add_header Access-Control-Allow-Methods "GET,HEAD,OPTIONS" always;
add_header Access-Control-Allow-Headers "Origin,Range,Accept,Content-Type" always;
add_header Access-Control-Expose-Headers "Content-Length,Content-Range" always;
try_files $uri =404;
}
# 默认仅允许静态文件
location / {
# 处理预检请求if 在 location 内合法)
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin "*";
add_header Access-Control-Allow-Methods "GET,HEAD,OPTIONS";
add_header Access-Control-Allow-Headers "Origin,Range,Accept,Content-Type";
add_header Access-Control-Max-Age 1728000;
add_header Content-Length 0;
add_header Content-Type "text/plain; charset=utf-8";
return 204;
}
try_files $uri =404;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
}