@ -1,4 +1,14 @@
## 1.docker的安装
## 1.服务器要求
1. 核心数和内存大小有两种方案:
- 2核4G( 使用ES搜索策略)
- 2核2G( 使用MySQL搜素策略)
2. 带宽大小有两种方案:
- 使用oss对带宽没有要求( 本人亲测: 1M带宽+oss 访问速度很快)
- 使用minio需要大一点的带宽( 小带宽也可以, 但需要使用cdn加速)
## 2.docker的安装
> 以下命令基于CentOS环境。
@ -40,9 +50,9 @@
****
## 2 .安装mysql
## 3 .安装mysql
### 2.1 无挂载模式
### 方式1: 无挂载模式
> 这种方式直接运行mysql之后, 所有关于mysql的内容都在容器中, 后续如果需要修改mysql的内容, 需要手动进入容器内进行操作。且在宿主机上无备份, 一旦容器被删除, 数据也会被删除。
@ -51,7 +61,7 @@ docker pull mysql //下载MySQL镜像
docker run --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 -d mysql //启动MySQL
```
### 2.2 数据卷挂载模式
### 方式2: 数据卷挂载模式
> 和**无挂载模式相对**,通过数据卷挂载的方式运行容器,将容器内的部分重要文件映射到宿主机上。直接操作宿主机对应的映射文件就能和容器内作同步,方便操作的同时还能保证容器内的数据在宿主机上有一个备份。
>
@ -63,21 +73,21 @@ docker run -d -p 3306:3306 --restart=always -v /auroras/mysql/log:/var/log/mysql
****
## 3 .安装redis
## 4 .安装redis
```shell
docker pull redis //下载Redis镜像
docker run --name redis --restart=always -p 6379:6379 -d redis --requirepass "密码" //启动Redis
```
## 4 .安装rabbitmq
## 5 .安装rabbitmq
```shell
docker pull rabbitmq:management //下载RabbitMQ镜像
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672 -d rabbitmq:management //启动RabbitMQ,默认guest用户, 密码也是guest。
```
## 5 .安装elasticsearch
## 6 .安装elasticsearch
```shell
docker pull elasticsearch:7.9.2
@ -88,33 +98,33 @@ mkdir -p /home/elasticsearch/data/
mkdir -p /home/elasticsearch/config/
```
### 5.1 编写配置文件
1. 编写配置文件
```shell
echo 'http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml
```
```shell
echo 'http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml
```
### 5.2 修改文件夹权限
2. 修改文件夹权限
```shell
chmod -R 777 /home/elasticsearch/
ls -l # 查看文件权限
```
```shell
chmod -R 777 /home/elasticsearch/
ls -l # 查看文件权限
```
### 5.3 启动elasticseach镜像
3. 启动elasticseach镜像
```shell
docker run --name elasticsearch -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/shellare/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/data:/usr/shellare/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/shellare/elasticsearch/plugins \
-d elasticsearch:7.9.2
```
```shell
docker run --name elasticsearch -p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /home/elasticsearch/config/elasticsearch.yml:/usr/shellare/elasticsearch/config/elasticsearch.yml \
-v /home/elasticsearch/data:/usr/shellare/elasticsearch/data \
-v /home/elasticsearch/plugins:/usr/shellare/elasticsearch/plugins \
-d elasticsearch:7.9.2
```
接下来我们就是拿浏览器访问啦。
@ -201,7 +211,7 @@ postman post请求分词测试: `http://服务器IP地址:9200/_analyze`
}
```
## 6 .安装MaxWell(ElasticSearch同步数据)
## 7 .安装MaxWell(ElasticSearch同步数据)
```sh
docker pull zendesk/maxwell //下载MaxWell镜像
@ -212,7 +222,7 @@ docker run --name maxwell --restart=always -d zendesk/maxwell bin/maxwell --u
****
## 7 .填写aurora-springboot中的yml文件
## 8 .填写aurora-springboot中的yml文件
此处省略, 操作比较简单, 就是配置一些简单的ip+端口+用户名+密码,前提是服务器上对应的端口已经打开
@ -222,7 +232,7 @@ QQ互联具体情况详见百度
这里就不赘述了
## 8 .打包运行后端项目
## 9 .打包运行后端项目
1. 使用idea右侧Maven的package命令
@ -297,7 +307,7 @@ docker run --name aurora-springboot-0.0.1.jar -d -p 8080:8080 aurora-springboot
****
## 9 .打包运行前端项目
## 10 .打包运行前端项目
1. aurora-blog项目中, 更改src/config/config.ts
@ -330,7 +340,7 @@ docker run --name aurora-springboot-0.0.1.jar -d -p 8080:8080 aurora-springboot
如果下列命令执行报错,可以尝试替换版本,参考版本如下,如果替换版本还是报错,加群询问已经部署完的兄弟!
参考版本: npm版本为: 8.3.1 vue-cli的版本为: 5.0.6
参考版本: npm版本为: 8.3.1 vue-cli的版本为: 5.0.6
```shell
npm install
@ -343,198 +353,200 @@ docker run --name aurora-springboot-0.0.1.jar -d -p 8080:8080 aurora-springboot
7. 将打包好的后台代码重命名为admin, 并传输到服务器的/usr/local/vue下面
## 10.安装并启动nginx(没有开启https)
tip: 在这之前, 需要到域名提供商那里配置好域名, 个人认为没有必要开启https,http完全够, 并且省事儿。当然, 如果想开启https的话, 后面也有相应的教程。
### 10.1 拉取nginx镜像
```shell
docker pull nginx
```
### 10.2 在/usr/local/nginx下创建nginx.conf文件, 格式如下
```shell
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 80;
server_name 前台域名;
location / {
root /usr/local/vue/blog;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name 后台子域名;
location / {
root /usr/local/vue/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
```
### 10.3 启动nginx
```shell
docker run --name nginx --restart=always -p 80:80 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue nginx
```
****
## 11.安装并启动nginx(开启https)
## 11.安装并启动nginx
### 11.1 修改配置文件
### 方式1: http
> 要配置https, 只需要对上面的配置文件`nginx.conf`的内容作如下修改即可。
1. 拉取nginx镜像
```bash
events {
worker_connections 1024;
}
```shell
docker pull nginx
```
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 443 ssl;
server_name 你的前台域名(如: www.baidu.com);
ssl on;
ssl_certificate ssl证书文件位置;
ssl_certificate_key ssl证书文件位置;
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;
location / {
root /usr/local/vue/blog;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的服务器公网IP:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
2. 在/usr/local/nginx下创建nginx.conf文件, 格式如下
```shell
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 80;
server_name 前台域名;
location / {
root /usr/local/vue/blog;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name 后台子域名;
location / {
root /usr/local/vue/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的ip:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
```
server {
3. 启动nginx
listen 443 ssl;
server_name 你的后台域名(如admin.baidu.com);
```shell
docker run --name nginx --restart=always -p 80:80 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/vue:/usr/local/vue nginx
```
ssl on;
ssl_certificate ssl证书文件位置;
ssl_certificate_key ssl文件位置;
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;
### 方式2: https
location / {
root /usr/local/vue/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的服务器公网IP:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
1. 拉取nginx镜像
```shell
docker pull nginx
```
2. 修改配置文件
server {
listen 80;
server_name 前台域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name 后台域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
}
```
```shell
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 50m;
client_body_buffer_size 10m;
client_header_timeout 1m;
client_body_timeout 1m;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 4;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
server {
listen 443 ssl;
server_name 你的前台域名(如: www.baidu.com);
ssl on;
ssl_certificate ssl证书文件位置;
ssl_certificate_key ssl证书文件位置;
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;
location / {
root /usr/local/vue/blog;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的服务器公网IP:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443 ssl;
server_name 你的后台域名(如admin.baidu.com);
ssl on;
ssl_certificate ssl证书文件位置;
ssl_certificate_key ssl文件位置;
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;
location / {
root /usr/local/vue/admin;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ^~ /api/ {
proxy_pass http://你的服务器公网IP:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name 前台域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 80;
server_name 后台域名;
rewrite ^(.*)$ https://$host$1 permanent;
}
}
```
### 11.2 重新运行nginx
3. 启动 nginx
> 由于开启https需要启用443端口, 所以在前面(非https)的基础上, 下面的运行命令新增了数据卷挂载的方式并打开了443端口。
```shell
docker run --name nginx --restart=always -p 443:443 -p 80:80 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/cert:/etc/nginx/cert -v /usr/local/vue:/usr/local/vue --privileged=true nginx
```
```bash
docker run --name nginx --restart=always -p 443:443 -p 80:80 -d -v /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/cert:/etc/nginx/cert -v /usr/local/vue:/usr/local/vue --privileged=true nginx
```