服务器类别
- 轻量应用服务器 : 快速搭建服务,简单易用,提供了很多镜像
- 云服务器: 功能齐全、基础的服务器
Tips: BAT 美团、华为、京东 1 年换一家去买,利用新用户优惠, 便宜很多😉
宝塔 Linux (Linux 运维面板 1 核 2 G 能带动)
- 对于企业: 不建议使用
- 对于个人:可以快速搭建应用,强烈建议
地区选择 ?
广州是腾讯总部,更加成熟
说了怎么多,其实 1 核 2 G 的也够用了。域名
国内地域需要备案,中国香港地域不需要备案SSH 连接服务器
使用 Xsheel 免费版就够用了防火墙
一定要先配置一下防火墙!禁用全部的 UDP
禁用 window远程桌面登录
限制 Linux登录的 IP 地址,查询自己的 IP 地址的方法:https://ip.900cha.com/
限制宝塔 Linux 可以登录的 IP 地址
宝塔安装
纯净的系统,安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
云服务器
注意点:部署项目的放行端口(安全组)
- 初始化工作
●在宝塔上安装Tomcat(为了装java),Nginx, Mysql,docker
●安装完毕之后停止tomcat,在服务器防火墙中放行8888(宝塔),8080(后端项目),和 3306(数据库)
mysql远程连接
数据库准备:创建一个mysql超级用户(允许远程访问,并赋予所有权限),创建数据库和用户表
1建立一个远程登录用户 create user ‘username’@‘%’ identified with mysql_native_password ‘password’;
2授权登录用户读写删除修改 GRANT ALL ON database.* TO ‘username’@‘%’;
3navicat远程连接要process授权 GRANT PROCESS ON . TO ‘username’@‘%’;
4刷新 FLUSH PRIVILEGES;
项目部署
●宝塔部署前端:添加网站,PHP项目添加站点,在根目录下上传前端npm build 后dist目录中的所有内容
●docker部署后端:本地maven package生成jar包,将项目传到服务器上,根据Dockerfile build后端镜像,并启动该镜像
配置事项
●域名配置:由于域名注册和备案需要一段时间,暂时用ip访问
●跨域配置:在站点配置文件中设置允许跨域
○nginx的配置跨域 下面的Nginx配置用于设置CORS(跨源资源共享)头,用于处理特定位置的请求,也就是以"/api/"开头的URL。CORS头用于控制允许从不同域访问Web服务器上的资源。(前端请求以/api开头)
location ^~ /api/ {
proxy_pass http://127.0.0.1:8080/api/;
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Credentials' 'true';
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers '*';
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Origin' $http_origin;
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Max-Age' 1728000;
add_header 'Content-Type' 'text/plain; charset=utf-8';
add_header 'Content-Length' 0;
return 204;
}
}
vercel
1api的密钥:
2部署ChatGPT-Next-Web项目用vercel 导入github的仓库 设置好环境变量 部署
3自定义vercel的域名 部署项目的设置中添加域名(域名需要解析到vercel提供的ip)