启用https

启用Https访问!别人收费几千几万的证书服务,这里教你开启免费且无限期自动续签的https证书服务!

修改配置文件

修改.env的配置文件中的如下变量

云服务器部署 https域名访问
NUXT_PUBLIC_BASE_APIURL=/api  #配置nginx反向代理
NUXT_PUBLIC_BASE_SOCKETURL=wss://[your domain]/socket.io  #与nginx配置中的域名前缀对应即可

安装Nginx

apt install nginx  #安装nginx

配置Nginx反向代理

新建一个文件名为easyai-proxy.conf,用记事本打开,复制如下内容,实现的代理规则如下:

  • 代理/api的请求到3001
  • 代理socket.io的请求到3002
  • 代理chatapi二级域名的请求到3000
  • 代理主域名的请求到3010
easyai-proxy.conf
map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

server {
    listen 80;
    server_name 51easyai.com www.51easyai.com;

    location / {
        proxy_pass http://127.0.0.1:3010/;
        proxy_redirect http://$host/ http://$http_host/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:3001/;
        proxy_read_timeout 1200s;
        client_max_body_size 100M;
        proxy_redirect http://$host/ http://$http_host/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
    }

    location /socket.io {
        proxy_pass http://127.0.0.1:3002;
        proxy_read_timeout 300s;
        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_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

server {
    listen 80;
    server_name chatapi.51easyai.com; 

    location / {
        client_max_body_size  64m;
        proxy_http_version 1.1;
        proxy_pass http://127.0.0.1:3000;  # 请根据实际情况修改你的端口
        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;  # GPT-4 需要较长的超时时间,请自行调整
    }
}

利用finalshell将easyai-proxy.conf上传到/etc/nginx/conf.d目录中

重载Nginx配置文件

nginx -s reload

配置Https证书

放行端口

阿里云:安全组放行80和443端口

配置域名解析

将域名解析到对应的服务器IP地址。登录你申请域名的平台,将域名解析到服务器的IP地址。以阿里云为例: 添加两条解析记录,主机记录www,即域名访问www.域名,将会指向到你的服务器IP地址

主机记录@,即域名直接访问域名(不带www),也会指向到你的服务器IP地址

利用certbot自动配置证书并自动续签

安装certbot

sudo apt update
sudo apt install certbot                #安装certbot
sudo apt install python3-certbot-nginx  # 如果你使用 Nginx

获取证书: 使用 Certbot 自动获取并安装证书(以 Nginx 为例):

sudo certbot --nginx

如果使用宝塔面板,nginx配置文件不在默认目录,使用如下命令

sudo certbot --nginx --nginx-server-root /www/server/nginx/conf/  #/www/server/nginx/conf/是宝塔面板默认的nginx配置文件目录