1.云服务器的购买:
2.域名申请+备案
3.安装Xshell
4.将服务器的公网ip设置在
xshell新建会话中的
上,5.
输入服务器创建的实例的实例密码
这样就是显示已连接
6.安装宝塔
输入到xshell中
安装完成
7.使用阿里云服务器ECS安装BT宝塔面板,安装完毕后宝塔面板会提示,若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口,需要配置服务器
在入方向进行手动添加
8.复制外网面板地址
用浏览器打开,然后输入对应的username,和password
9.宝塔部署java环境
刚进入宝塔会有个安装选项,选择第一个,进行一键安装
新建一个数据库
点击导入, 将本地数据库导入进去
导入成功
10.点击安全,放行888(nginx)、8777(这个是我的后端端口,可以自己定)和3306(数据库)、8080、6379(redis)这五个端口
并且需要从阿里云服务器的安全组添入这些端口
11.安装tomcat,然后就可以访问8080端口了
并且可以远程连接数据库了:
redis环境配置:
1.打开redis配置文件,Ctrl+F搜索bind,将127.0.0.1 改为0.0.0.0,不然外网搜索不到
2.在配置文件中找到requirepass配置节点,删除前面的#以去掉注释。将foobared修改为自己的密码(这里不需要,不然springboot连接redis会报错,或者springboot的yaml文件设置redis密码)
3.然后重启redis(很重要)
修改完成后重新启动Redis服务,配置即可生效。
nginx(这里可以不用配置):
在软件商城下载之后,需要进行配置,打开配置文件,搜索server
将监听的端口号改为888
并且root路径也有问题
搜索该路径,可以发现,根路径为/www/server/phpmyadmin/phpmyadmin_7d9764bcb8f00359/,修改
再访问888端口,成功(账户密码为对应的数据库用户名和密码)
这里是nginx全局配置,一般情况下不会在这里代理项目,后面会说到nginx对前端项目的配置
11.宝塔软件商城搜索一键
对java环境进行一键安装
11.2 配置xftp
首先下载xftp6(最多到版本6,不能到7)
再下载c32asm
使用c32asm的16进制打开nslicense.dll文件
ctrl+f,查找7F0C 81F9 8033 E101,将紧随其后的0F86,改为0F83,保存文件,有时可能需要管理员身份运行编辑器来覆盖保存修改后的文件
重新双击打开xftp6即可。
点击传输,有该弹窗即可
12.备案成功后,开始进行域名解析
在阿里云搜索域名解析,填写公网Ip
15.需要把代码进行一个打包
首先,点击setting=>file Encoding,设置文件编码格式为utf8,并且在transparent native ...上进行一个打勾
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在父项目里进行依赖的添加,用于打包
另外将父目录依赖添加打包后的名字:
<build>
<finalName>blogApi</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后在maven里面选择打包,记得把localhost改为自己的公网ip
然后把打包好的jar和application.yaml上传到服务器的home目录下
然后开始运行该项目,点击网址,选择添加JAVA项目
记得在宝塔和阿里云放行8777端口
成功运行
前端也可以访问
前端部署
前端先使用 npm run build打包,把请求的baseUrl改为api,下面会做baseURL的反向代理
上传到服务器
阿里云服务器搜索域名,将自己的ip进行dns解析,主机记录填*
点击php项目的添加站点,把自己的域名添加进去
网站目录是你自己前端打包的dist文件,然后再传到服务器的根目录,运行目录就是/,不用管
点击配置文件,使用nginx配置反向代理
所以要自己在宝塔和阿里云放行这个80端口
我的配置文件:
server
{
listen 80;
server_name blog.suqiqaq.cn;
index index.php index.html index.htm default.php default.htm default.html;
root /home/blogApi/;
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
#SSL-END
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
#error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-00.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/blog.suqiqaq.cn.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
# location / {
# root /home/blogApi/;
# try_files $uri $uri/ /index.html;
# index index.html index.htm;
# }
location ^~/api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8777/;
# proxy_connect_timeout 300s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log /dev/null;
error_log /www/wwwlogs/blog.suqiqaq.cn.error.log;
}
location ^~/api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8777/;
# proxy_connect_timeout 300s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
}
这里做的是一个反向代理,将前端的前缀api代理为http://127.0.0.1:8777/,
127.0.0.1是本机,由于前端后端是同一个服务器跑,所以填本机就行
然后启动站点,就可以运行了
到这里服务器的部署就结束啦