From b67f94a8131e8db0e46155f6f7767f1811887aed Mon Sep 17 00:00:00 2001 From: ddrwode <34234@3来 34> Date: Mon, 9 Feb 2026 14:28:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=88=E5=93=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 22 ++++++++++++++++++++++ app.py | 3 +++ config.py | 2 +- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 252721d..73b679c 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,28 @@ python main.py 生产环境请务必设置 `ADMIN_PASSWORD`、`SECRET_KEY`、`SITE_URL`,并妥善保管 `DB_PASSWORD`。 +当前默认站点域名:`https://vps.ddrwode.cn`(可通过环境变量 `SITE_URL` 覆盖)。 + +### 用域名访问(Nginx 反向代理示例) + +在服务器上用 Nginx 把域名 `vps.ddrwode.cn` 指到本服务(例如本机 5001 端口): + +```nginx +server { + listen 80; + server_name vps.ddrwode.cn; + location / { + proxy_pass http://127.0.0.1:5001; + 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; + } +} +``` + +若启用 HTTPS(推荐),可用 certbot 申请证书并配置 `listen 443 ssl`,同时保证 `SITE_URL` 为 `https://vps.ddrwode.cn`。 + ## 接入 Google 广告 1. 在 [Google AdSense](https://www.google.com/adsense/) 注册并获取广告代码。 diff --git a/app.py b/app.py index 4155470..2128ac5 100644 --- a/app.py +++ b/app.py @@ -3,6 +3,7 @@ import io from urllib.parse import urlencode from flask import Flask, render_template, jsonify, request, redirect, url_for, session, send_file +from werkzeug.middleware.proxy_fix import ProxyFix from sqlalchemy import text from config import Config from extensions import db @@ -11,6 +12,8 @@ from openpyxl import load_workbook app = Flask(__name__) app.config.from_object(Config) +# 部署在 Nginx 等反向代理后时,信任 X-Forwarded-* 头(HTTPS、真实 IP) +app.wsgi_app = ProxyFix(app.wsgi_app, x_for=1, x_proto=1, x_host=1) db.init_app(app) from models import VPSPlan, Provider # noqa: E402 diff --git a/config.py b/config.py index 3312869..b8f021e 100644 --- a/config.py +++ b/config.py @@ -24,7 +24,7 @@ class Config: # 优先使用 DATABASE_URL,否则使用 MySQL SQLALCHEMY_DATABASE_URI = os.environ.get("DATABASE_URL") or _mysql_uri() SQLALCHEMY_TRACK_MODIFICATIONS = False - SITE_URL = os.environ.get("SITE_URL") or "https://example.com" + SITE_URL = os.environ.get("SITE_URL") or "https://vps.ddrwode.cn" SITE_NAME = "云服务器价格对比"