使用Nginx反向代理为OneAPI配置https访问

OneAPI在实现大模型访问的过程中提供了接近商业化的API生成服务,在商业化运用过程中,使用https加密访问可以提高访问的安全性。那么如何为OneAPI设置https访问呢?接下来,我们就使用Nginx的反向代理实现这一目标。

Nginx是一款高性能的http和反向代理服务器软件,可用于负载均衡、缓存、网页内容展示,应用应用程序反向代理等。本文介绍了如何使用Nginx实现OneAPI的反向代理。服务器配置情况如下:

主机租用,有固定外网地址

服务器硬件配置:2C2G

操作系统:ubuntu24.04

Nginx:1.26.2

一:安装Nginx

1、清除旧版的Nginx

#停止 Nginx 服务:
sudo systemctl stop nginx

#清除系统中所有旧的 Nginx 软件包:
sudo apt autoremove nginx* --purge 

#删除旧文件(如有)
sudo rm -rf /etc/nginx/

2、安装相关依赖

sudo apt update && apt upgrade -y

sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring dirmngr software-properties-common apt-transport-https

3、安装Nginx

#导入 GPG 密钥
curl -fSsL https://nginx.org/keys/nginx_signing.key | sudo gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null


#添加 Nginx 官方软件源
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list

#安装 Nginx
sudo apt update
sudo apt install nginx

验证安装结果

nginx -v

二:Nginx基本操作

1、检查状态

systemctl status nginx

2、启动、停止和重启服务

sudo systemctl start nginx    # 启动服务
sudo systemctl stop nginx     # 停止服务
sudo systemctl reload nginx   # 重新加载配置文件,不中断服务
sudo systemctl restart nginx  # 重启服务

3、设置开机自启动

sudo systemctl enable nginx   # 启用开机自启动
sudo systemctl disable nginx  # 禁止开机自启动

三:生成签名证书

ssl证书的申请有多种方式,可以向你的主机提供商申请,有提供免费的,也有收费的。

免费的有certbot和acme等,另外还有自签名证书openssl。如果商用不建议使用自签名证书。

四:配置Nginx SSL和反向代理

nginx v1.26与早前的版本在配置上稍异,配置文件:

vim /etc/nginx/conf.d/default.conf

全部修改如下: 

server {
    listen       443 ssl;
    server_name  localhost;
    #SSL配置块
    ssl_certificate /etc/nginx/cert/server.crt;
    ssl_certificate_key /etc/nginx/cert/server.key;
    ssl_session_cache  shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=631139040; includeSubDomains; preload";


    #access_log  /var/log/nginx/host.access.log  main;

    # location / {
    #    root   /usr/share/nginx/html;
    #    index  index.html index.htm;
    # }

    #反向代理块
    location / {
        client_max_body_size  64m;
        proxy_pass http://localhost:3000;  #OneAPI的端口
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header Accept-Encoding gzip;
        proxy_read_timeout 300s;  # 设置访问延时时间。
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

1、第一块是设置SSL

    ssl_certificate /etc/nginx/cert/server.crt;   #证书存放位置
    ssl_certificate_key /etc/nginx/cert/server.key;  #密钥存放位置
    ssl_session_cache  shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=631139040; includeSubDomains; preload";

将证书和密钥存到你指定的位置,这里使用的路径:/etc/nginx/cert,文件名自行修改。

mkdir -p /etc/nginx/cert

拷贝证书和密钥到此目录。 

2、第二块是反向代理块

location / {
        client_max_body_size  64m;
        proxy_pass http://localhost:3000;  #OneAPI的端口
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header Accept-Encoding gzip;
        proxy_read_timeout 300s;  # 设置访问延时时间。
    }

注意:proxy_pass http://localhost:3000;就是OneAPI的后端地址,无论是源码安装,还是docker安装指定访问地址就可以了。

3、验证与使用

#验证
nginx -t

启动nginx

sudo systemctl restart nginx  # 重启服务
sudo systemctl reload nginx   # 重新加载配置文件,不中断服务

好了,下面你用https://IP就可以访问了。当然为了安全的要求,你可以在防火墙那里把3000端口关掉。

<think>好的,我现在需要帮助用户解决如何使用Highcharts创建3D饼图的问题。首先,用户提供的引用内容中有几个相关的引用,比如引用[4]和引用[5],里面提到了3D饼图的配置方法。我需要先仔细查看这些引用内容,确保信息准确。 首先,引用[4]中提到了设置chart的type为'pie',并且在options3d里启用3D效果,调整alpha和beta角度。同时,引用[5]也提到在chart配置中启用options3d,并设置alpha为65,beta为0。这些信息是关键步骤,应该整合到回答中。 接下来,我需要按照用户的要求,将回答结构化,分步骤说明如何创建3D饼图。步骤可能包括引入必要的库、配置3D参数、数据格式等。需要注意的是,用户提供的示例代码中有提到需要导入highcharts3d模块,这在引用[2]中有详细说明,比如在main.js里注册并调用highcharts3d(highcharts)。这一步很重要,否则3D效果可能无法启用。 然后,我需要确保代码示例正确,包括正确的type设置、options3d的启用,以及数据结构的正确性。例如,数据应该是一个包含name和y值的对象数组。同时,可能需要设置plotOptions.pie.depth来调整饼图的厚度,这在引用[4]中提到了depth参数,但需要确认在饼图中的具体用法。 另外,用户可能需要知道如何调整3D效果的角度和其他参数,比如alpha和beta,这些在引用[4]和[5]中都有涉及。需要解释这些参数的作用,比如alpha控制倾斜角度,beta控制旋转角度。 还需要检查是否有遗漏的配置项,比如是否需要启用3D图表的其他设置,或者在HTML中如何引入Highcharts库。根据引用[3],用户可能需要引入基本的Highcharts和highcharts-3d模块,并正确初始化。 最后,生成的相关问题需要与Highcharts的3D图表相关,比如性能优化、其他3D图表类型或者交互功能。确保问题符合用户可能的进一步需求。 总结步骤: 1. 引入Highcharts库和highcharts-3d模块。 2. 配置chart的type为'pie'。 3. 在options3d中启用3D并设置参数。 4. 数据格式和深度调整。 5. 完整的代码示例。 6. 注意事项,如模块引入顺序和参数调整。 需要确保每一步都参考了用户提供的引用内容,并在适当的位置添加引用标识。同时,代码示例要正确,语法无误,避免用户在实际操作中出现错误。</think>### 如何使用 Highcharts 创建 3D 饼图 #### 步骤说明 1. **引入依赖库** 在项目中需同时引入 Highcharts 基础库和 3D 功能模块: ```javascript // 基础库 import highcharts from 'highcharts'; // 3D模块(必须) import highcharts3d from 'highcharts/highcharts-3d'; // 初始化3D功能 highcharts3d(highcharts); // [^2] ``` 2. **配置 3D 参数** 在图表配置对象中启用 `options3d`,并设置视角参数: ```javascript chart: { type: 'pie', // 指定为饼图类型 options3d: { enabled: true, // 启用3D效果 alpha: 65, // 垂直倾斜角度(0-90) beta: 0 // 水平旋转角度(0-360)[^5] } } ``` 3. **设置数据与样式** 通过 `series.data` 定义饼图数据,并可通过 `depth` 调整厚度: ```javascript plotOptions: { pie: { depth: 30 // 饼图厚度(默认25) } }, series: [{ data: [ { name: '分类A', y: 45 }, { name: '分类B', y: 30 }, { name: '分类C', y: 25 } ] }] ``` #### 完整示例 ```html <!DOCTYPE html> <script src="https://code.highcharts.com/highcharts.js"></script> <script src="https://code.highcharts.com/highcharts-3d.js"></script> <!-- 3D模块 --> <div id="container" style="width: 600px; height: 400px;"></div> <script> Highcharts.chart('container', { chart: { type: 'pie', options3d: { enabled: true, alpha: 65, beta: 0 } }, title: { text: '3D 饼图示例' }, plotOptions: { pie: { depth: 30, allowPointSelect: true, slicedOffset: 20 } }, series: [{ data: [ ['数据1', 45], ['数据2', 30], ['数据3', 25] ] }] }); </script> ``` #### 注意事项 - **模块引入顺序**:必须先加载基础库再加载 3D 模块 - **视角调整**:`alpha` 超过 90 会导致图形倒置,`beta` 可产生旋转动画效果[^4] - **浏览器兼容性**:3D 功能依赖 WebGL 支持,需测试目标环境兼容性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BBM的开源HUB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值