分类 后端 下的文章

nginx.conf

http {

    # 隐藏 nginx 版本
    server_tokens off;

    # 限制连接数
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;

    # 请求限速(防爆破)
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;

}

conf.d/www.conf

server {

    listen 443 ssl;
    server_name yourdomain.com;

    # SSL 示例
    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;

    # 安全 header
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection "1; mode=block";

    location /jidejin439h2udenwdh29h489fcuedh2f39/ {
        rewrite ^/jidejin439h2udenwdh29h489fcuedh2f39/(.*)$ /$1 break;
        # 连接限制
        limit_conn conn_limit_per_ip 10;

        # 请求限制
        limit_req zone=req_limit_per_ip burst=10;

        limit_req_status 429;

        # Basic Auth
        auth_basic "Private Server";
        auth_basic_user_file /etc/nginx/.htpasswd;

        proxy_pass http://127.0.0.1:6000;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

  1. 下载 WinSW
    前往 WinSW GitHub Releases 下载可执行文件(通常选 WinSW-x64.exe)。
  2. 准备配置文件
    将下载好的 WinSW-x64.exe 复制到 D:\nginx-1.26.3 目录下。

将它重命名为 nginx-service.exe(名字随你,但要统一)。

在同一目录下新建一个文本文档,命名为 nginx-service.xml(注意后缀名是 .xml),并填入以下内容:

<service>
  <id>nginx</id>
  <name>Nginx Service</name>
  <description>High Performance HTTP Server</description>
  <executable>D:\nginx-1.26.3\nginx.exe</executable>
  <stopexecutable>D:\nginx-1.26.3\nginx.exe</stopexecutable>
  <stopargument>-s</stopargument>
  <stopargument>stop</stopargument>
  <logpath>D:\nginx-1.26.3\logs</logpath>
  <log mode="roll"></log>
</service>
  1. 安装服务
    以 管理员身份 运行 CMD(搜索“命令提示符” -> 右键 -> 以管理员身份运行)。

输入以下命令进入 Nginx 目录:

DOS
d:
cd D:\nginx-1.26.3
执行安装命令:

DOS
nginx-service.exe install
安装成功后,启动服务:

DOS
nginx-service.exe start

常用管理命令(WinSW 模式)
如果你使用了方案一,以后管理 Nginx 就不需要进目录点图标了,直接在管理员 CMD 里输入:

启动: net start nginx

停止: net stop nginx

卸载服务: nginx-service.exe uninstall(需先停止)

选择上传压缩包

压缩包会被解压在src目录下

假设上传的代码包为coze.zip

依赖包有两种处理方式

  • 直接打包在代码包内
  • 在函数管理那块,直接在控制台手动安装

    cd src/coze && pip3.10 install -r requirements.txt -t . 

需要修改文件 scf_bootstrap


cd coze && python3.10 app.py

pip install django_apscheduler

settings.py

INSTALLED_APPS = [

    # ...
    'django_apscheduler',
    # ...
]

app为应用目录
app下新建 scheduler.py

import time
from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_job, register_events
import logging

print('django-apscheduler')

logging.basicConfig()
logging.getLogger('apscheduler').setLevel(logging.DEBUG)
def job2(name):
    # 具体要执行的代码
    print('{} 任务运行成功!{}'.format(name,time.strftime("%Y-%m-%d %H:%M:%S")))

# 实例化调度器
scheduler = BackgroundScheduler()
# 调度器使用DjangoJobStore()
# 持久化会报错 注释掉
# scheduler.add_jobstore(DjangoJobStore(), "default")
# 添加任务1
# 每隔5s执行这个任务
@register_job(scheduler,"interval", seconds=5,args=['王路'],id='job1')
def job1(name):
    # 具体要执行的代码
    print('{} 任务运行成功!{}'.format(name,time.strftime("%Y-%m-%d %H:%M:%S")))

scheduler.add_job(job2,"interval",seconds=10,args=['王飞'],id="job2")

# 监控任务
register_events(scheduler)
# 调度器开始运行

app.apps.py修改

from django.apps import AppConfig
from django.conf import settings

class AppConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'app'
    
    # 新增
    def ready(self):
        if settings.SCHEDULER_AUTOSTART:
            from .scheduler import scheduler
            scheduler.start()