云服务器CentOS前后端部署流程记录
Posted llayjun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云服务器CentOS前后端部署流程记录相关的知识,希望对你有一定的参考价值。
部署流程记录
-
购买云服务ecs服务器,建立CentOS系统
-
通过xftp+xshell访问远程服务
-
doker部署(https://www.runoob.com/docker/centos-docker-install.html)
-
docker
- docker部署环境(mysql)
-
docker常用命令
1. docker images 查看镜像 2. docker rmi xxx 移除镜像 3. docker ps 查看容器 4. docker rm -f xxx 强制删除一个容器
-
使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
-
启动docker
sudo systemctl start docker
-
docker安装mySql(记得在云服务器规则开通3306端口号)
docker pull mysql:8.0.31 拉去mysql对应版本 docker run -itd --name zMysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.31 启动mysql对应版本
-
使用navcat连接数据库。假如提示连接不上,有可能是数据库没有放开权限。
-
- docker部署环境(mysql)
-
安装jdk环境
- jdk环境配置
-
下载jdk-8u351-linux-x64.tar.gz,地址:https://www.oracle.com/java/technologies/downloads/
-
下载包移动到/usr/local中
-
进入目录解压
cd /usr/local tar -zxvf jdk-8u171-linux-x64.tar.gz
-
添加jdk环境变量
[root@node1 local]# vi /etc/profile # 添加jdk环境变量 export JAVA_HOME=/usr/local/jdk1.8.0_171 #jdk安装目录 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export JAVA_PATH=$JAVA_HOME/bin:$JRE_HOME/bin export PATH=$PATH:$JAVA_PATH [root@node1 local]# source /etc/profile 立即生效
-
java -version查看配置情况
-
启动服务,命令:sh wss.sh start(记得在规则里放开对应的端口号,也可放开所有,一劳永逸)
- 启动服务(wss.sh文件如下,带*的需要修改)
-
通过ip+端口号访问接口
-
- jdk环境配置
-
注册域名
- 注册域名
- 注册一个域名,例如:zylstudy.asia,zylstudy.com等
- 域名解析
-
点击解析
-
快速添加解析(类型选A,主机记录www和@,另外添加一个*,则匹配泛型,或者由自己单独添加对应的),需要等待一段时间才能访问
-
通过www.xxx.xxx+端口号访问接口(如果通过域名访问出现302,需要域名备案)
-
- 通过域名访问,还需要域名备案
- 注册域名
-
部署eureka服务
-
eureka服务中心注册(服务端)
-
导入库
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
-
yml文件
server: port: 28761 eureka: instance: hostname: oil_eureka_server client: allow-redirects: false # 不将自己注册到eureka上 fetch-registry: false # 不从eureka获取服务信息 service-url: defaultZone: http://localhost:28761/eureka/
-
Application中加注解
@EnableEurekaServer
-
-
eureka提供服务端注入(我这边注入两个服务)
-
导入库
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
-
yml文件配置
server: port: 第一个28081/第二个28082 eureka: instance: prefer-ip-address: true # 注册服务使用IP到eureka上 client: service-url: defaultZone: http://localhost:28761/eureka/ spring: application: name: 第一个oil-base-api/第二个oil-base-service
-
-
eureka服务发现,请求eureka中服务
-
导入库
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
-
yml文件配置
server: port: 55169 eureka: instance: prefer-ip-address: true # 注册服务使用IP到eureka上 client: service-url: defaultZone: http://localhost:28761/eureka/
-
Application中加注解
// 开启发现服务功能 @EnableDiscoveryClient
-
-
访问eureka地址
-
通过ip+端口号访问eureka服务,看注册情况
-
如何访问eureka上的服务,通过Appliation名称可以访问,但是只能在项目里面访问,postman貌似访问不了。项目内部通过
RestTemplate
访问restTemplate.getForObject("http://OIL-BASE-API/api/test", String.class)
-
-
-
gateway配置
-
导入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
-
yml中的配置
server: port: 55169 eureka: instance: prefer-ip-address: true # 注册服务使用IP到eureka上 client: service-url: defaultZone: http://localhost:28761/eureka/ spring: application: name: oil-gateway cloud: gateway: default-filters: discovery: locator: lowerCaseServiceId: true enabled: true routes: - id: oil-base-api # 基础后端接口api uri: lb://oil-base-api # eureka服务name predicates: - Path=/back/api/** #不可以有空格 filters: - StripPrefix=2 #转发到具体服务 - id: oil-base-service # 和基站对接服务 uri: lb://oil-base-service # eureka服务name predicates: - Path=/back/service/** #不可以有空格 filters: - StripPrefix=2 #转发到具体服务
-
访问eureka地址
-
通过接口访问
在gateway中,通过接口测试
@RestController public class GatewayController @Autowired RestTemplate restTemplate; @GetMapping("/api/test") public String getInfoEurekaApi() return restTemplate.getForObject("http://OIL-BASE-API/api/test", String.class); @GetMapping("/service/test") public String getInfoEurekaService() return restTemplate.getForObject("http://OIL-BASE-SERVICE/test", String.class);
-
-
配置nginx,反向代理,隐藏真是的ip地址和端口号
-
nginx
Nginx反向代理
-
代理服务
-
负载均衡
-
动静分离
访问过程
-
-
安装nginx,https://blog.csdn.net/t8116189520/article/details/81909574
- 需要这些(通过下面命令下载)
- ssl功能需要 openssl 库
- gzip模块需要 zlib 库
- rewrite模块需要 pcre 库
- nginx的安装配置
-
安装依赖
//一键安装上面四个依赖 yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
-
下载并解压安装包
cd /usr/local //创建一个文件夹 mkdir nginx cd nginx //下载tar包 wget http://nginx.org/download/nginx-1.13.7.tar.gz tar -xvf nginx-1.13.7.tar.gz
-
安装nginx
//进入nginx目录 cd /usr/local/nginx //进入目录 cd nginx-1.13.7 //执行命令 考虑到后续安装ssl证书 添加两个模块 ./configure --with-http_stub_status_module --with-http_ssl_module //执行make命令 make //执行make install命令 make install
-
启动服务并查看状态(要在sbin目录下)
[root@VM-4-2-centos sbin]# ./nginx [root@VM-4-2-centos sbin]# ./nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
-
修改配置nginx.conf
-
重启nginx
[root@VM-4-2-centos sbin]# ./nginx -s reload
-
查看nginx进程是否启动
ps -ef | grep nginx
-
ip访问
- 需要这些(通过下面命令下载)
-
配置项目nginx,修改nginx.conf
- 找到conf
- 修改conf目录下nginx.conf文件
-
可以直接在nginx.conf中修改
-
可以新建一个文件夹,便于多项目的单独配置
-
在nginx.conf中最后加一句,指向另外一个文件夹
include /usr/local/nginx/conf/conf.d/*.conf;
![在这里插入图片描述](https://img-blog.csdnimg.cn/6d4a7fc4c95c41af90bb19d64637d19b.png#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a6c048523a6244a2938b5a96328cb2fd.png#pic_center) 内容大概如下: ```java server listen 80; server_name oil.zylstudy.asia; # 配置前端一些文件 # gzip config gzip on; gzip_min_length 1k; gzip_comp_level 9; 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; gzip_disable "MSIE [1-6]\\."; # 配置前端路径 root /home/oilrig/font/back/dist; # 用于配合 browserHistory使用 location / try_files $uri $uri/ /index.html; # index index.html; error_page 500 502 503 504 /50x.html; location = /50x.html root html; location = /favicon.ico log_not_found off; location /back/api proxy_pass http://127.0.0.1:55169; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; ```
-
重启nginx(上传了新的前端的dist包,需要重启nginx)
[root@VM-4-2-centos sbin]# ./nginx -s reload
-
-
-
通过域名访问
http://oil.zylstudy.asia/service/test(显示302,提示需要域名备案)
-
-
前端打包
-
前端测试,proxy修改
-
打包(package.json)
build
生成dist文件,放到跟nginx里面目录对应位置
# 配置前端路径 root /home/oilrig/font/back/dist;
-
以上是关于云服务器CentOS前后端部署流程记录的主要内容,如果未能解决你的问题,请参考以下文章
阿里云(win server)部署前后端分离项目(springboot + vue + android)
阿里云(win server)部署前后端分离项目(springboot + vue + android)
阿里云(win server)部署前后端分离项目(springboot + vue + android)
CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示
CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示
CentOS7/8系统下,使用Jenkins实现SpringBoot+Vue前后端分离项目持续集成,一键编译打包跨设备部署,完整详细教学演示