目录
Linux常用命令和出错情况:
redis常用命令和出错情况
MySQL的主从复制
Nginx常用命令和出错情况:
前后端分离
Swagger的使用(接口管理)
项目部署
vim 文件名--编译文件
--i编辑模式
--/查找
--按n跳到下一个,shift + n跳到上一个
--:wq退出保存
--:q!退出不保存
./--执行
Ctrl+C中断了进程,返回到终端界面。Ctrl+Z暂停了进程,返回到终端界面
ps -ef | grep redis -----查找redis
关防火墙(redis端口6379) firewall-cmd --zone=public --add-port=6379/tcp --permanent
重写启动防火墙 firewall-cmd --reload
遇到虚拟机IP失效,需要重启network:
关闭网络:service NetworkManager stop
重启:service network restart
详情见 Redis中文网
在springboot中使用redis
先在pom中导入依赖:
详细流程:
五种类型操作:
String—set,get
Hash—put,get
List—添加leftPush、leftPushAll,取值range(k,l,l1),出队列rightPop
Set—add,members,删除remove
Zset—add,取值range,加分值incrementScore,删除remove
通用操作:
//获取Redis中所有的key
keys
//判断某个key是否存在
hasKey
//删除指定key
delete
//获取指定key对应的value的数据类型
type
MySQL的主从复制——创建新服务器:
一、需要模拟两台服务器提供两个不同的MySQL,在此使用vm创建两台Linux虚拟机新创建的虚拟机:
首先修改网络初始化配置加载网卡,1.cd /etc/sysconfig/network-scripts 2.vim ifcfg-ens33 进入之后将末尾的no改为yes
二、安装MySQL,在此采用rpm安装(yum也可)
步骤:上传,解压到指定文件夹,按顺序下载-因不能自处理依赖,百度找顺序(rpm需要在下载服务前安装 net-tools)
三、启动MySQL,查找初始密码cat /var/log/mysqld.log | grep password,然后登录,然后设置新密码
(需要设置密码长度set global validate_password_length=4;
安全等级set global validate_password_policy=LOW;
密码set password=password('root');
权限 grant all on *.* to 'root'@'%' identified by 'root';
刷新flush privileges;)
MySQL的主从复制——配置:
一、原服务器配置mysql:my.cnf中启用二进制日志和设置唯一id
二、创建新服务器需要使用的账户mysql> GRANT REPLICATION SLAVE ON *.* to 'xiaoming'@'%' identified by 'Root@123456';
三、新服务器配置mysql:
my.cnf中设置唯一id
将新服务器用户绑定原服务器提供的含权限账户change master to master_host='192.168.162.128',master_user='xiaoming',master_password='Root@123456',master_log_file='mysql-bin.000003',master_log_pos=441;
(此处的file和pos需要在原服务器中查看状态获取)
*****************虚拟机主从复制报错:Slave_SQL_Running:no***********************
报错:Slave_SQL_Running:no点击这里
可以到Nginx官方网站下载Nginx的安装包,地址为:https://nginx.org/en/download.html
安装过程:
1、安装依赖包 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
2、下载Nginx安装包wget https://nginx.org/download/nginx-1.16.1.tar.gz
3、解压 tar -zxvf nginx-1.16.1.tar.gz
4、cd nginx-1.16.1
5、./configure --prefix=/usr/local/nginx
6、make && make install
查看Nginx版本可以使用命令:
./nginx -v
在启动Nginx服务之前,可以先检查一下conf/nginx.conf文件配置的是否有错误,命令如下:
./nginx -t
启动Nginx服务使用如下命令:
./nginx
停止Nginx服务使用如下命令:
./nginx -s stop
启动完成后可以查看Nginx进程:
ps -ef | grep nginx
当修改Nginx配置文件后,需要重新加载才能生效,可以使用下面命令重新加载配置文件:
./nginx -s reload
配置反向代理
server {
listen 82;
server_name localhost;
location / {
proxy_pass http://192.168.138.101:8080; #反向代理配置,将请求转发到指定服务
}
}
配置负载均衡:
upstream targetserver{ #upstream指令可以定义一组服务器
server 192.168.138.101:8080 weight=10;
server 192.168.138.101:8081 weight=5;
}
server {
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver;
}
}
名称 |
说明 |
轮询 |
默认方式 |
weight |
权重方式 |
ip_hash |
依据ip分配方式 |
least_conn |
依据最少连接方式 |
url_hash |
依据url分配方式 |
fair |
依据响应时间方式 |
官网:https://swagger.io/
操作步骤:
1、导入knife4j的maven坐标
com.github.xiaoymin
knife4j-spring-boot-starter
3.0.2
2、导入knife4j相关配置类
3、设置静态资源,否则接口文档页面无法访问
@EnableSwagger2
@EnableKnife4j
/**
* 设置静态资源映射
* @param registry
*/
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
log.info("开始进行静态资源映射...");
registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
@Bean
public Docket createRestApi() {
// 文档类型
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.study.reggie.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("瑞吉外卖")
.version("1.0")
.description("瑞吉外卖接口文档")
.build();
}
4、在LoginCheckFilter中设置不需要处理的请求路径
*****************************************************************************************************
相关配置做完之后,直接启动,浏览器端访问路径为http://localhost:8080/doc.html
Nginx:部署前端项目、配置反向代理
:第一步 前端打包的dist文件上传到Nginx的html目录下
第二步 修改Nginx配置文件nginx.conf
Mysql:主从复制结构中的主库
(需要jdk、git、maven、MySQL,使用git clone命令将git远程仓库的代码克隆下来 )
jdk:运行Java项目
git:版本控制工具
maven:项目构建工具
jar:Spring Boot项目打成jar包基于内置Tomcat运行
Mysql:主从复制结构中的从库
1、使用自定义的reggieStart.sh文件启动项目,需要开启权限chmod 777 reggieStart.sh
2、将本地存放图片的img目录整体上传至服务器B的/usr/local目录下
需要修改yml中的图片访问路径
然后在虚拟机指定位置上传图片
Redis:缓存中间件要时刻保持开启状态