|
|
|
@ -1 +1,590 @@
|
|
|
|
|
### Happy ,Spring !!
|
|
|
|
|
@[TOC](如何部署Spring Boot + Vue项目:Centos为例)
|
|
|
|
|
> 😊😊😊欢迎来到本博客😊😊😊
|
|
|
|
|
📫作者简介:阿斯卡码,专注于研究Java框架/Vue,就读于河南中医药大学,刚刚入门项目开发📫
|
|
|
|
|
🏆 CSDN编程比赛奖章获得者/Java领域创作者🏆
|
|
|
|
|
🔥计划学习:深入学习Spring全家桶,Vue, mybatis,Mysql等领域。(目前涉及不深入)🔥
|
|
|
|
|
👍如果此文还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主~
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>先总结:
|
|
|
|
|
>- ssh登录步骤:
|
|
|
|
|
> - 1.`vim config`配置别名
|
|
|
|
|
> - 2.`ssh-copy-id myserver`配置免密登录
|
|
|
|
|
> - 3.若出错,删除文件,重新`ssh-keygen`
|
|
|
|
|
>- 服务器和Docker创建acs&&赋予sudo:
|
|
|
|
|
> - 方法不同,因为镜像,服务器不同(Centos)
|
|
|
|
|
> - 先登录服务器下的acs,还得登录Docker下的acs
|
|
|
|
|
> - 祖传文件:
|
|
|
|
|
> - 第一次:传到服务器下的acs用户
|
|
|
|
|
> - 第二次:传到Docker下的acs用户
|
|
|
|
|
>
|
|
|
|
|
# 一:项目上线:Centos版
|
|
|
|
|
## 1.ACterminal端:
|
|
|
|
|
### 1.1ssh登录服务器
|
|
|
|
|
```java
|
|
|
|
|
ssh root@IP地址
|
|
|
|
|
输入密码:XXXX
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
如出现以下报错:则执行:`rm .ssh/known_hosts `
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
acs@2889803f8420:~$ ssh root@IP
|
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
|
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
|
|
|
|
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
|
|
|
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
|
|
|
|
|
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
|
|
|
|
|
It is also possible that a host key has just been changed.
|
|
|
|
|
The fingerprint for the ECDSA key sent by the remote host is
|
|
|
|
|
SHA256:Lb/lDeBWaAhVm9Xkfpa6dCkjsVcIENwxRiFgsml7NWc.
|
|
|
|
|
Please contact your system administrator.
|
|
|
|
|
Add correct host key in /home/acs/.ssh/known_hosts to get rid of this message.
|
|
|
|
|
Offending ECDSA key in /home/acs/.ssh/known_hosts:4
|
|
|
|
|
remove with:
|
|
|
|
|
ssh-keygen -f "/home/acs/.ssh/known_hosts" -R "119.91.226.142"
|
|
|
|
|
ECDSA host key for 119.91.226.142 has changed and you have requested strict checking.
|
|
|
|
|
Host key verification failed.
|
|
|
|
|
```
|
|
|
|
|
### 1.2创建acs新用户(第一次创建)
|
|
|
|
|
>**Linux命令列出所有用户**:`cat /etc/passwd |cut -f 1 -d:`
|
|
|
|
|
|
|
|
|
|
- 创建用户:`adduser acs(用户名)`
|
|
|
|
|
- 设置用户密码:`passwd acs,然后 输入密码`
|
|
|
|
|
- 验证:查看用户,多出acs用户,`cat /etc/passwd |cut -f 1 -d:`
|
|
|
|
|
|
|
|
|
|
>sudo知识:sudo 命令提供了一种机制,它可以在不用分享 root 用户的密码的前提下,为信任的用户提供系统的管理权限。
|
|
|
|
|
### 1.3给用户acs分配sudo权限
|
|
|
|
|
|
|
|
|
|
- 先找到`/etc/sudoers`位置
|
|
|
|
|
- 给文件写入权限:`chmod u+w sudoers`
|
|
|
|
|
- 修改文件:`vim/etc/sudoers`
|
|
|
|
|
- 添加:在里面找到`root ALL=(ALL) ALL`
|
|
|
|
|
- 然后在其下面增加`username ALL=(ALL) ALL`
|
|
|
|
|
- 配置免密使用`sudo`命令:
|
|
|
|
|
```java
|
|
|
|
|
# User privilege specification
|
|
|
|
|
root ALL=(ALL:ALL) ALL
|
|
|
|
|
# Members of the admin group may gain root privileges
|
|
|
|
|
%admin ALL=(ALL) ALL
|
|
|
|
|
# Allow members of group sudo to execute any command
|
|
|
|
|
%sudo ALL=(ALL:ALL) ALL
|
|
|
|
|
#下面的user是你的用户名 添加这一行就能免密sudo了
|
|
|
|
|
user ALL=(ALL:ALL) NOPASSWD: ALL
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- 将文件的写入属性撤销:`chmod u-v sudoers`
|
|
|
|
|
|
|
|
|
|
- 通过`su xx`切换回自己的用户名,再使用`sudo`命令时,就可以使用了
|
|
|
|
|
|
|
|
|
|
>**chmod知识:**
|
|
|
|
|
XXX代表一个数,XXXXXXXXX代表三个数
|
|
|
|
|
**查看文件的权限:**
|
|
|
|
|
`ll` 不包含点开头的文件
|
|
|
|
|
`ll -a` 包括点开头的文件
|
|
|
|
|
具体一个文件:`ll 文件名`
|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
**如何查看acs具有sudo权限呢?**
|
|
|
|
|
执行:`sudo cat /etc/sudoers`
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 1.4配置别名登录(登录acs)
|
|
|
|
|
`vim config `
|
|
|
|
|

|
|
|
|
|
### 1.5配置免密登录(ssh:服务器下acs)
|
|
|
|
|
- 自动配置服务器密钥:`ssh-copy-id myserver`
|
|
|
|
|
|
|
|
|
|
- 回车命令后输入密码,为了将`.ssh/id_rsa.pub`的内容传到目标服务器的`~/.ssh/authorized_keys`中,若没有此文件,通过命令:`ssh-keygen`生成。
|
|
|
|
|
|
|
|
|
|
- 测试:登录云服务器:`ssh myserver1`
|
|
|
|
|
|
|
|
|
|
### 1.6将祖传文件传到服务器的acs下[第一次传](在Acterminal上)
|
|
|
|
|
- 配置`tmux、vim、bash`环境:`scp .bashrc .vimrc .tmux.conf myserver1:`
|
|
|
|
|

|
|
|
|
|
### 1.7 软件安装(Ac端||本地)
|
|
|
|
|
> `sudo yum update` 作用:更新软件列表
|
|
|
|
|
#### 1.7.1安装`tmux`
|
|
|
|
|
- 安装`tmux`
|
|
|
|
|
- 1.登录自己的服务器,然后安装`tmux`:
|
|
|
|
|
```java
|
|
|
|
|
sudo yum update
|
|
|
|
|
sudo yum install tmux
|
|
|
|
|
```
|
|
|
|
|

|
|
|
|
|
通过tmux命令测试是否安装成功
|
|
|
|
|
|
|
|
|
|
#### 1.7.2安装`docker`
|
|
|
|
|
- 安装`docker`
|
|
|
|
|
- 1.打开`tmux`。(养成好习惯,所有工作都在`tmux`里进行,防止意外关闭终端后,工作进度丢失)
|
|
|
|
|
- 2.刷新软件源:`sudo yum update`
|
|
|
|
|
- 2.在云服务器的`acs`用户下:然后在`tmux`中根据`docker`安装教程安装`docker`即可。
|
|
|
|
|
``tmux ``
|
|
|
|
|
``ctrl shift A +shift %分屏``
|
|
|
|
|
|
|
|
|
|
- 3.`Centos`安装`Docker`网址
|
|
|
|
|
[Centos的Docker安装](https://docs.docker.com/engine/install/centos/)
|
|
|
|
|
- 4.步骤如下:在下面。
|
|
|
|
|
- 5.测试:`docker --version`
|
|
|
|
|
- 6.配置docker sudo权限,`sudo usermod -aG docker $USER`,要不然使用docker所有命令都要sudo
|
|
|
|
|
- 7.`ctrl + d`返回acwing服务器,再次通过ssh命令进入自己服务器,此时docker可以正常使用了。执行完此操作后,需要退出服务器,再重新登录回来,才可以省去`sudo`权限。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
########################设置存储库######################
|
|
|
|
|
sudo yum install -y yum-utils
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sudo yum-config-manager \
|
|
|
|
|
--add-repo \
|
|
|
|
|
https://download.docker.com/linux/centos/docker-ce.repo
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#######################安装 Docker 引擎####################
|
|
|
|
|
sudo yum update
|
|
|
|
|
|
|
|
|
|
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
|
|
|
|
|
|
|
|
|
|
##############################测试##########################
|
|
|
|
|
输入docker,有相关用法提示出现---》成功
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
>输入`docker status`,出现以下错误。原因是,当前用户没有添加到`docker用户组`
|
|
|
|
|
**解决办法:**
|
|
|
|
|
1.输入`sudo`+命令
|
|
|
|
|
2.将当前用户添加到`docker`用户组:
|
|
|
|
|
为了避免每次使用`docker`命令都需要加上`sudo`权限,可以将当前用户加入安装中自动创建的docker用户组(可以参考官方文档):
|
|
|
|
|
`sudo usermod -aG docker $USER`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 2.本地Git Bash端
|
|
|
|
|
### 2.1ssh别名登录(ssh:服务器下acs)
|
|
|
|
|
|
|
|
|
|
- >`Vim config`
|
|
|
|
|
>>Host 别名
|
|
|
|
|
HostName ip
|
|
|
|
|
User 用户名
|
|
|
|
|
- 本地创建密钥,如果以前创建过密钥,跳过此步:ssh-keygen(本地执行过一次ssh-keygen)
|
|
|
|
|
|
|
|
|
|
- 自动配置服务器密钥:`ssh-copy-id myserver`
|
|
|
|
|
|
|
|
|
|
- 输入云服务上的密码即可。
|
|
|
|
|
|
|
|
|
|
- 测试:登录云服务器:`ssh myserver1`
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 3.Acterminal端:配置docker环境(传送Docker)
|
|
|
|
|
|
|
|
|
|
**配置spring boot的docker环境**
|
|
|
|
|
|
|
|
|
|
- 返回acwing服务器,进入`/var/lib/acwing/docker/images`,通过命令:`scp django_lesson_1_0.tar 别名:`
|
|
|
|
|
|
|
|
|
|
- 加载tar文件为docker镜像文件:`docker load -i django_lesson_1_0.tar`,
|
|
|
|
|
通过`docker images`查看docker镜像
|
|
|
|
|
|
|
|
|
|
- 创建spring boot的docker:`docker run -p 20000:22 -p 443:443 -p 80:80 -p 3000:3000 -p 3001:3001 -p 3002:3002 -itd --name kob_server django_lesson:1.0`
|
|
|
|
|
|
|
|
|
|
- 进入容器:`docker attach kob_server`
|
|
|
|
|
|
|
|
|
|
此时这个容器才是我们的开发环境,我们还需==添加用户、给用户添加sudo权限==。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 3.1给容器创建用户acs(第二次创建)
|
|
|
|
|
- 添加用户:`adduser 用户名`,输入两次密码,五次回车,输入Y
|
|
|
|
|
- 添加sudo权限:`usermod -aG sudo 用户名`
|
|
|
|
|
- 通过命令`ctrl + p + ctrl + q`挂载容器,注意不是`ctrl d`(关闭容器)
|
|
|
|
|
- 去腾讯云,开放端口80,443,20000端口
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### 3.1.1ACTerminal配置登录Docker中的acs(ssh:Docker下acs)
|
|
|
|
|
- >1.`vim config`
|
|
|
|
|
>>Host 别名
|
|
|
|
|
HostName ip
|
|
|
|
|
User 用户名
|
|
|
|
|
Port 20000
|
|
|
|
|
|
|
|
|
|
- 2.配置免密登录:`ssh-copy-id 别名`
|
|
|
|
|
- 3.`ssh 别名`
|
|
|
|
|
|
|
|
|
|
#### 3.1.2GitBash(本地)配置登录Docker中的acs(ssh:Docker下acs)
|
|
|
|
|
- >1.`vim config`
|
|
|
|
|
>>Host 别名
|
|
|
|
|
HostName ip
|
|
|
|
|
User 用户名
|
|
|
|
|
Port 20000
|
|
|
|
|
|
|
|
|
|
- 2.配置免密登录:`ssh-copy-id 别名`
|
|
|
|
|
- 3.`ssh 别名`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 3.2将祖传文件传到docker中acs下【第二次传】(在Acterminal上)
|
|
|
|
|
` scp .bashrc .vimrc .tmux.conf myserver1_docker1:`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 4.本地Git Bash操作:配置docker开发环境
|
|
|
|
|
在Docker下的acs中,下面的命令是apt-get,因为是ubantu镜像。
|
|
|
|
|
### 4.1 安装、配置mysql
|
|
|
|
|
- 更新软件源;`sudo apt-get update`
|
|
|
|
|
- 安装:`sudo apt-get install mysql-server`
|
|
|
|
|
- 启动:`sudo service mysql start`
|
|
|
|
|
- 登录mysql:`sudo mysql -u root`
|
|
|
|
|
- 设置root用户的密码:`ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';`
|
|
|
|
|
- 创建数据库:create database kob;
|
|
|
|
|
- `use kob;`
|
|
|
|
|
- `show tables;`
|
|
|
|
|
- 创建表
|
|
|
|
|
- 在idea中打开数据库,右键kob -> SQL脚本 -> 将DDL生成到剪贴板
|
|
|
|
|
- 在docker容器中acs下创建create_table.sql:`vim create_table.sql`
|
|
|
|
|
- 输入命令:`:set paste`进入粘贴模式
|
|
|
|
|
- 按i进入编辑模式,按下`shift + insert`粘贴内容,:wq保存并退出
|
|
|
|
|
前提要先选择好数据库,`use kob`;
|
|
|
|
|
- 在mysql命令行中输入命令:`source /home/acs/create_table.sql`
|
|
|
|
|
- 创建成功
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
### 4.2 安装jdk
|
|
|
|
|
|
|
|
|
|
- 命令:`sudo apt-get install openjdk-8-jdk`
|
|
|
|
|
- 测试:`java -version`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 5.上线后端(重点)
|
|
|
|
|
### ~~5.1.将代码执行的输入修改为文件~~
|
|
|
|
|
### ~~5.2.将排行榜页面的展示个数修改为10~~
|
|
|
|
|
### ~~5.3.标记玩家游戏所在处~~
|
|
|
|
|
### 5.4.统一api格式
|
|
|
|
|
**修改api地址**
|
|
|
|
|
- 将GetRanklistController、GetRecordListController、InfoController、GetListController的GetMapping中的地址前加上/api
|
|
|
|
|
- 将LoginController、RegisterController、AddController、RemoveController、UpdateController的PostMapping中的地址前加上/api
|
|
|
|
|
|
|
|
|
|
**修改网关**
|
|
|
|
|
- .antMatchers("/api/user/account/token/", "/api/user/account/register/").permitAll()
|
|
|
|
|
|
|
|
|
|
### 5.5.后端上线(重点)
|
|
|
|
|
|
|
|
|
|
**配置项目打包方式eg:**
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
backend/pom.xml
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
|
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<artifactId>backend</artifactId>
|
|
|
|
|
<packaging>jar</packaging>
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<build>
|
|
|
|
|
<plugins>
|
|
|
|
|
<plugin>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
|
|
|
<!--这里写上main方法所在类的路径-->
|
|
|
|
|
<configuration>
|
|
|
|
|
<mainClass>com.kob.backend.BackendApplication</mainClass>
|
|
|
|
|
</configuration>
|
|
|
|
|
<executions>
|
|
|
|
|
<execution>
|
|
|
|
|
<goals>
|
|
|
|
|
<goal>repackage</goal>
|
|
|
|
|
</goals>
|
|
|
|
|
</execution>
|
|
|
|
|
</executions>
|
|
|
|
|
</plugin>
|
|
|
|
|
</plugins>
|
|
|
|
|
</build>
|
|
|
|
|
</project>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
botrunningsystem/pom.xml
|
|
|
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
|
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<artifactId>botrunningsystem</artifactId>
|
|
|
|
|
<packaging>jar</packaging>
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<build>
|
|
|
|
|
<plugins>
|
|
|
|
|
<plugin>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
|
|
|
<!--这里写上main方法所在类的路径-->
|
|
|
|
|
<configuration>
|
|
|
|
|
<mainClass>com.kob.botrunningsystem.BotRunningSystemApplication</mainClass>
|
|
|
|
|
</configuration>
|
|
|
|
|
<executions>
|
|
|
|
|
<execution>
|
|
|
|
|
<goals>
|
|
|
|
|
<goal>repackage</goal>
|
|
|
|
|
</goals>
|
|
|
|
|
</execution>
|
|
|
|
|
</executions>
|
|
|
|
|
</plugin>
|
|
|
|
|
</plugins>
|
|
|
|
|
</build>
|
|
|
|
|
</project>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
matchingsystem/pom.xml
|
|
|
|
|
|
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
|
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<artifactId>matchingsystem</artifactId>
|
|
|
|
|
<packaging>jar</packaging>
|
|
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
|
|
<build>
|
|
|
|
|
<plugins>
|
|
|
|
|
<plugin>
|
|
|
|
|
<groupId>org.springframework.boot</groupId>
|
|
|
|
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
|
|
|
|
<!--这里写上main方法所在类的路径-->
|
|
|
|
|
<configuration>
|
|
|
|
|
<mainClass>com.kob.matchingsystem.MatchSystemApplication</mainClass>
|
|
|
|
|
</configuration>
|
|
|
|
|
<executions>
|
|
|
|
|
<execution>
|
|
|
|
|
<goals>
|
|
|
|
|
<goal>repackage</goal>
|
|
|
|
|
</goals>
|
|
|
|
|
</execution>
|
|
|
|
|
</executions>
|
|
|
|
|
</plugin>
|
|
|
|
|
</plugins>
|
|
|
|
|
</build>
|
|
|
|
|
</project>
|
|
|
|
|
```
|
|
|
|
|
**打包**
|
|
|
|
|
提示:打包前记得删除匹配玩家时输出的语句
|
|
|
|
|
打开右侧Maven,**点开backendcloud -> 生命周期 -> 双击clean -> 双击package**
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**用本地终端,传给docker下的acs**
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
scp backend-0.0.1-SNAPSHOT.jar myserver1_docker1:
|
|
|
|
|
scp botrunningsystem-0.0.1-SNAPSHOT.jar myserver1_docker1:
|
|
|
|
|
scp matchingsystem-0.0.1-SNAPSHOT.jar myserver1_docker1:
|
|
|
|
|
```
|
|
|
|
|
**登录Docker下的acs**
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
cd ~
|
|
|
|
|
mkdir kob
|
|
|
|
|
cd kob
|
|
|
|
|
mkdir backendcloud
|
|
|
|
|
mkdir web
|
|
|
|
|
mkdir acapp
|
|
|
|
|
cd backendcloud
|
|
|
|
|
mv ~/*.jar .
|
|
|
|
|
```
|
|
|
|
|
**运行后端**
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
java -jar backend-0.0.1-SNAPSHOT.jar
|
|
|
|
|
java -jar matchingsystem-0.0.1-SNAPSHOT.jar
|
|
|
|
|
java -jar botrunningsystem-0.0.1-SNAPSHOT.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
## 6.获取域名及Https证书(重点)
|
|
|
|
|
|
|
|
|
|
- 获取SSL证书,下载*.key和*.pem文件,复制粘贴到`/etc/nginx`下(我是从腾讯申请的SSL)
|
|
|
|
|
如何申请SSL?
|
|
|
|
|

|
|
|
|
|

|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- >在docker->acs下:
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
cd /etc/nginx
|
|
|
|
|
sudo mkdir cert
|
|
|
|
|
cd cert
|
|
|
|
|
sudo vim acapp.key
|
|
|
|
|
点击i进入编辑模式,shift + insert粘贴
|
|
|
|
|
esc退出编辑模式,:wq保存并退出
|
|
|
|
|
|
|
|
|
|
sudo vim acapp.pem
|
|
|
|
|
点击i进入编辑模式,shift + insert粘贴
|
|
|
|
|
esc退出编辑模式,:wq保存并退出
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 7.配置nginx配置文件(重点)
|
|
|
|
|
### 7.1配置文件
|
|
|
|
|
- cd /etc/nginx
|
|
|
|
|
- sudo vim nginx.conf
|
|
|
|
|
- 在命令行模式输入命令:ggdG
|
|
|
|
|
- 复制y总讲义nginx配置文件内容(在下面)
|
|
|
|
|
- 使用命令粘贴:
|
|
|
|
|
- `sudo scp .bashrc .vimrc .tmux.conf /root`将文件传给root
|
|
|
|
|
- 使用:set paste进入粘贴模式
|
|
|
|
|
- 按i进入编辑模式
|
|
|
|
|
- shift + insert粘贴
|
|
|
|
|
- esc退出编辑模式
|
|
|
|
|
- dd删除无关行内容
|
|
|
|
|
- :wq保存内容
|
|
|
|
|
- 将server_name的编号改成acwing创建应用界面的AppID,共有两处
|
|
|
|
|
或者自己的域名
|
|
|
|
|
|
|
|
|
|
注意:若用户名不是acs,需要将nginx.conf配置文件中的acs全部改成你的用户名
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```css
|
|
|
|
|
user www-data;
|
|
|
|
|
worker_processes auto;
|
|
|
|
|
pid /run/nginx.pid;
|
|
|
|
|
include /etc/nginx/modules-enabled/*.conf;
|
|
|
|
|
|
|
|
|
|
events {
|
|
|
|
|
worker_connections 768;
|
|
|
|
|
# multi_accept on;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
http {
|
|
|
|
|
|
|
|
|
|
sendfile on;
|
|
|
|
|
tcp_nopush on;
|
|
|
|
|
tcp_nodelay on;
|
|
|
|
|
keepalive_timeout 65;
|
|
|
|
|
types_hash_max_size 2048;
|
|
|
|
|
|
|
|
|
|
include /etc/nginx/mime.types;
|
|
|
|
|
default_type application/octet-stream;
|
|
|
|
|
|
|
|
|
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
|
|
|
|
|
ssl_prefer_server_ciphers on;
|
|
|
|
|
|
|
|
|
|
access_log /var/log/nginx/access.log;
|
|
|
|
|
error_log /var/log/nginx/error.log;
|
|
|
|
|
|
|
|
|
|
gzip on;
|
|
|
|
|
|
|
|
|
|
include /etc/nginx/conf.d/*.conf;
|
|
|
|
|
include /etc/nginx/sites-enabled/*;
|
|
|
|
|
|
|
|
|
|
server {
|
|
|
|
|
listen 80;
|
|
|
|
|
server_name XXXXXXXXXX替换app2703.acapp.acwing.com.cn;
|
|
|
|
|
rewrite ^(.*)$ https://${server_name}$1 permanent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
server {
|
|
|
|
|
listen 443 ssl;
|
|
|
|
|
server_name XXXXXXXXXX替换app2703.acapp.acwing.com.cn;
|
|
|
|
|
ssl_certificate cert/acapp.pem;
|
|
|
|
|
ssl_certificate_key cert/acapp.key;
|
|
|
|
|
ssl_session_timeout 5m;
|
|
|
|
|
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
|
|
|
|
|
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
|
|
|
|
|
ssl_prefer_server_ciphers on;
|
|
|
|
|
charset utf-8;
|
|
|
|
|
access_log /var/log/nginx/access.log;
|
|
|
|
|
error_log /var/log/nginx/error.log;
|
|
|
|
|
|
|
|
|
|
client_max_body_size 10M;
|
|
|
|
|
|
|
|
|
|
location /api {
|
|
|
|
|
proxy_pass http://127.0.0.1:3000;
|
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
|
proxy_set_header Host $http_host;
|
|
|
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
location /websocket {
|
|
|
|
|
proxy_pass http://127.0.0.1:3000;
|
|
|
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
|
|
|
proxy_set_header Host $http_host;
|
|
|
|
|
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 "upgrade";
|
|
|
|
|
proxy_read_timeout 36000s;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
location / {
|
|
|
|
|
root /home/acs/kob/web;
|
|
|
|
|
index index.html;
|
|
|
|
|
try_files $uri $uri/ /index.html;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 7.2启动并重新加载nginx
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
sudo /etc/init.d/nginx start
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
### 7.3查看日志
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
cd /var/log/nginx/
|
|
|
|
|
sudo cat error.log
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 7.4测试(403,405)
|
|
|
|
|
在浏览器中输入域名测试,若提示403 forbidden则表示成功,并测试放行端口显示405
|
|
|
|
|
https://snake.mycomputer.top/api--->403
|
|
|
|
|
https://snake.mycomputer.top/api/user/account/register/--->405
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 8.上线前端(重点)
|
|
|
|
|
**修改前端请求api**
|
|
|
|
|
|
|
|
|
|
- 在vscode中,`ctrl + shift + f`全文搜索127.0.0.1或localhost,将http://127.0.0.1:3000`替换`为https://appxxxx.acapp.acwing.com.cn/api
|
|
|
|
|
- 将ws://127.0.0.1:3000`替换`为wss://appxxxx.acapp.acwing.com.cn
|
|
|
|
|
- 打开vue脚手架,停止server,在任务界面选择`build`,运行
|
|
|
|
|
- 通过scp命令将`dist文件夹`上传到服务器:scp -r dist/ springboot:kob/web/
|
|
|
|
|
- 将dist内容移出到web下:mv dist/* .
|
|
|
|
|
- 在web下刪除dist文件
|
|
|
|
|
- 访问域名就可以访问前端网页了!
|
|
|
|
|
## 9.Success!!
|
|
|
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|