AI聊天GPT的服务器选型及服务器初始化

部署服务器选型及服务器初始化

我这边选的是腾讯云海外服务器
必须为海外服务器,因为我们需要直调国外的API,当然你也可以通过nginx代理chatgpt的api,然后购买国内服务器

点击跳转选购服务器

来到这里!往下滑

在这里插入图片描述

选择服务器

一般2核2g或者2核4g已经足够撑起当前网站的运行了

系统选择 CentOS Stream 8
在这里插入图片描述

跳转到控制台

点击我跳转轻量级服务器控制台

这就是刚刚购买的那台服务器

在这里插入图片描述

密码重置

点击更多

在这里插入图片描述

重置完成后,开始用Xshell工具连接刚刚的服务器

Xshell下载地址,点击跳转

连接成功

输入账户root
密码为刚刚重置的那个
在这里插入图片描述

开始安装JDK

这边使用openjdk,一键安装,为了方便快速

命令:yum -y list java*

在这里插入图片描述
安装JDK1.8

命令:yum install -y java-1.8.0-openjdk.x86_64

查看jdk版本
java -version
显示版本号,说明安装成功了
在这里插入图片描述

安装宝塔

命令:yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

在这里插入图片描述
后续操作(y/n)? 输入y即可

在这里插入图片描述

安装成功

在这里插入图片描述

输入BT命令,调起面板

输入:bt
在这里插入图片描述
这边我一般只修改3个东西,面板端口,用户名,和登录密码

修改用户名

输入对应的账号
在这里插入图片描述

修改密码

输入对应的密码
在这里插入图片描述

更改端口

我这边更改端口为5000
在这里插入图片描述

注意!更改为5000端口后,我们需要去腾讯云服务器控制台的防火墙放开当前这个端口号

点击它

在这里插入图片描述

选择防火墙

在这里插入图片描述

添加规则

在这里插入图片描述

添加5000端口

在这里插入图片描述

打开Xshell

命令:bt default

复制这个外网面板地址,在浏览器打开

在这里插入图片描述

在浏览器打开

点击高级

在这里插入图片描述

点击继续

在这里插入图片描述

输入刚刚的账号密码

在这里插入图片描述

登录成功

在这里插入图片描述

有账号则绑定,没账号注册

在这里插入图片描述

宝塔开始安装必要的软件

选择商店
在这里插入图片描述

安装redis

在这里插入图片描述

点击安装

在这里插入图片描述

安装nginx

在这里插入图片描述
在这里插入图片描述

安装mysql

在这里插入图片描述
在这里插入图片描述

等待安装完成

大概过程需要15分钟左右

在这里插入图片描述

调整为首页展示

开启首页展示
在这里插入图片描述

放行3306端口

在这里插入图片描述

腾讯云服务器端口放行3306

在这里插入图片描述

重置root数据库密码

在这里插入图片描述

提交

在这里插入图片描述

初始化Plum-GPT数据库

打开后端工程下面的默认SQL

在这里插入图片描述

修改SQL,配置请求key

注意这个key已经过期了,用不了,需要你们自己拿自己的key配上去,
如果你没有key,请加作者微信:typsusan(key是120额度,速度快,收费,不贵)
我不卖,但是你需要,我可以给你去买
在这里插入图片描述

添加数据库

在这里插入图片描述

添加数据库

这个账号密码需要记住哦!
放到chatgpt-template工程的application.yml文件
在这里插入图片描述

导入数据库

导入刚刚那个SQL文件
在这里插入图片描述

上传后,点击导入

在这里插入图片描述

导入成功

在这里插入图片描述

配置服务器文件地址

创建图片默认文件夹

命令:mkdir -p /data/chat

在这里插入图片描述

命令:mkdir -p /data/chat/identify

在这里插入图片描述

命令:mkdir -p /data/chat/default

在这里插入图片描述

创建完成

在这里插入图片描述

上传默认的头像

/data/chat/default 下面是用户的默认头像 jpg结尾格式,名称为0~51的图片

在这里插入图片描述
在这里插入图片描述

nginx配置https

选购域名

https://buy.cloud.tencent.com/domain

搜索你想要的名称

域名一般都是购买期限为1年,价格为10~60价格不等,还有免费的ssl

在这里插入图片描述

购买完成后

跳转到域名控制台

在这里插入图片描述

域名开始解析服务器ip

在这里插入图片描述

快速解析

在这里插入图片描述

选择刚刚购买的那台服务器

在这里插入图片描述

开始配置nginx配置

以下是全部的配置,部分需要根据你实际情况修改

user  www www;
worker_processes auto;
error_log  /www/wwwlogs/nginx_error.log  crit;
pid        /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;

stream {
    log_format tcp_format '$time_local|$remote_addr|$protocol|$status|$bytes_sent|$bytes_received|$session_time|$upstream_addr|$upstream_bytes_sent|$upstream_bytes_received|$upstream_connect_time';
  
    access_log /www/wwwlogs/tcp-access.log tcp_format;
    error_log /www/wwwlogs/tcp-error.log;
    include /www/server/panel/vhost/nginx/tcp/*.conf;
}

events
    {
        use epoll;
        worker_connections 51200;
        multi_accept on;
    }

http
    {
        include       mime.types;
		#include luawaf.conf;

		include proxy.conf;

        default_type  application/octet-stream;

        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        sendfile   on;
        tcp_nopush on;

        keepalive_timeout 60;

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
		fastcgi_intercept_errors on;

        gzip on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
		limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;
server
    {
        listen 80;
        server_name www.plumgpt.com plumgpt.com;
        index index.html index.htm index.php;
        add_header Content-Security-Policy upgrade-insecure-requests;
        #error_page   404   /404.html;
        include enable-php.conf;
        
        
        if ($http_host ~ "^www.plumgpt.com$") {
          rewrite ^(.*) https://plumgpt.com$1 permanent;
        }
        
        if ($http_host ~ "^http://plumgpt.com/#/chat$") {
          rewrite ^(.*) https://plumgpt.com$1 permanent;
        }
        
        if ($http_host ~ "^plumgpt.com/#/chat$") {
          rewrite ^(.*) https://plumgpt.com$1 permanent;
        }
        
        
        location / {
          root /www/wwwroot/dist;
          if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ) {
          	  root /www/wwwroot/h5;
          }
        }
        
        
        
        location /request/open {
            proxy_pass http://你服务器的ip:8099;
            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 REMOTE-HOST $remote_addr;
            proxy_connect_timeout 30s;
            proxy_read_timeout 86400s;
            proxy_send_timeout 30s;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        
            add_header Cache-Control no-cache;
            add_header Cache-Control private;
            
            if ($http_user_agent ~* "Scrapy|Sogou web spider|Baiduspider") {
            	return 403;
            }
            if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" )
            {
            	return 403;
            } 
            if ($request_method !~ ^(GET|HEAD|POST)$) {
            	return 403;
            }
            if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
            	return 404;
            }
            if ($proxy_add_x_forwarded_for != $remote_addr){
            	return 444;
            }
        
            expires -1s;
        }
        
        location /webSocket/  {   
           proxy_pass http://你服务器的ip:8099;    
           proxy_http_version 1.1;    
           proxy_read_timeout 3600s;
           proxy_set_header Upgrade $http_upgrade;    
           proxy_set_header Connection "Upgrade";    
           proxy_set_header X-real-ip $remote_addr;
           proxy_set_header X-Forwarded-For $remote_addr;
                       if ($http_user_agent ~* "Scrapy|Sogou web spider|Baiduspider") {
            	return 403;
            }
            if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" )
            {
            	return 403;
            } 
            if ($request_method !~ ^(GET|HEAD|POST)$) {
            	return 403;
            }
            if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
            	return 404;
            }
            if ($proxy_add_x_forwarded_for != $remote_addr){
            	return 444;
            }
        }
        
        rewrite ^(.*) https://$server_name$request_uri permanent;
        

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
server
    {
        listen 80;
        listen 443 ssl http2;
        server_name www.plumgpt.com plumgpt.com;
        index index.html index.htm index.php;
        add_header Content-Security-Policy upgrade-insecure-requests;
        
       
        
        if ($http_host ~ "^www.plumgpt.com$") {
          rewrite ^(.*) https://plumgpt.com$1 permanent;
        }
      
        if ($server_port !~ 443){
            rewrite ^(/.*)$ https://$host$1 permanent;
         }
        ssl_certificate /www/wwwroot/plumgpt.com_nginx/plumgpt.com_bundle.pem;
        ssl_certificate_key /www/wwwroot/plumgpt.com_nginx/plumgpt.com.key;
        ssl_session_timeout 10m;
        ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        #error_page   404   /404.html;
        include enable-php.conf;
        
        
        location / {
          root /www/wwwroot/dist;
          if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ) {
          	  root /www/wwwroot/h5;
          }
        }
        

        
        location /request/open {
            proxy_pass http://你服务器的ip:8099;
            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 REMOTE-HOST $remote_addr;
            proxy_connect_timeout 30s;
            proxy_read_timeout 86400s;
            proxy_send_timeout 30s;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        
            add_header Cache-Control no-cache;
            add_header Cache-Control private;
        
            if ($http_user_agent ~* "Scrapy|Sogou web spider|Baiduspider") {
            	return 403;
            }
            if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" )
            {
            	return 403;
            } 
            if ($request_method !~ ^(GET|HEAD|POST)$) {
            	return 403;
            }
            if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
            	return 404;
            }
            if ($proxy_add_x_forwarded_for != $remote_addr){
            	return 444;
            }
        
            expires -1s;
        }
        
        location /chat {
          rewrite ^/chat/(.*)$ /$1 break;
          root /data/chat;
        }
        
        location /webSocket/  { 
           proxy_pass http://你服务器的ip:8099;    
           proxy_http_version 1.1;    
           proxy_read_timeout 3600s;
           proxy_set_header Upgrade $http_upgrade;    
           proxy_set_header Connection "Upgrade";    
           proxy_set_header X-real-ip $remote_addr;
           proxy_set_header X-Forwarded-For $remote_addr;
           
                       if ($http_user_agent ~* "Scrapy|Sogou web spider|Baiduspider") {
            	return 403;
            }
            if ($http_user_agent ~ "FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|HttpClient|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$" )
            {
            	return 403;
            } 
            if ($request_method !~ ^(GET|HEAD|POST)$) {
            	return 403;
            }
            if ($http_user_agent ~ "Mozilla/4.0\ \(compatible;\ MSIE\ 6.0;\ Windows\ NT\ 5.1;\ SV1;\ .NET\ CLR\ 1.1.4322;\ .NET\ CLR\ 2.0.50727\)") {
            	return 404;
            }
            if ($proxy_add_x_forwarded_for != $remote_addr){
            	return 444;
            }
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}


修改nginx配置 替换你服务器ip

所以的地方都替换
可以自己检索一下文字 “你的服务器的ip”
在这里插入图片描述

域名替换

注意所以的地方都需要替换
1,黄色框框替换为你自己购买的域名
2,蓝色框框是PC前端vue打包好后存放的地址
3,绿色框框是手机端打包好后存放的地址

在这里插入图片描述

域名证书

这个地方替换为你域名证书存放的地址
在这里插入图片描述

写入到nginx

在这里插入图片描述

更改配置

将刚刚配置好的全部替换到这里面来

在这里插入图片描述

如果对以上步骤有疑惑,不懂的可以加博主vx:typsusan

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

来自上海的这位朋友

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

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

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

打赏作者

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

抵扣说明:

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

余额充值