Linux命令、nginx反向代理服务器、shell脚本
1.什么是Linux系统?
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux,centos7 等。
2. 为什么使用Linux系统?
因为Linux系统性能比较稳定而且比较安全,非常是否程序的运行。 我们开发的项目程序,都会部署到Linux系统上。
我们要学习linux系统,就必须在自己电脑上安装Linux系统或者租赁其他云服务的linux系统。
租赁:阿里云或者腾讯云等
安装: 借助虚拟机---模拟安装n个操作系统。
3. 如何使用
安装虚拟机:===VMware Workstation Pro===创建多个虚拟电脑---每个电脑可以安装自己相应的系统镜像。



4. ssh客户端工具---xshell
作用:可以帮你连接你的虚拟机。

使用ifconfig 查看你虚拟机的ip地址。====>如果上面的命令不能用 用ip addr


5. linux常见的命令
1.ping 命令 测试网络联通型。 表示该虚拟机可以连接百度网络。

2.cd 命令 切换到指定目录下。

/: 根目录
bin: 目录 命令目录 千万不要删除【以后很多命令不能使用了】
etc: 环境配置目录。
root: 账号为root用户名的目录
sbin: 存放命令的目录
usr: 用户目录 ---window program file 习惯把软件安装到该目录下
cd 指的目录名称
cd ../ 切换到上一级目录
cd / 切换到根目录
3.ls 查询当前目录下的子文件
ls 查看当前目录下的子文件
ls 指定目录 查询指定目录下子文件
ls -l 以列表的形式 查询指定目录下的子文件
ls -a 查询指定目录下所有的文件包含隐藏文件
4.pwd 查看当前所在的目录
pwd
5.mkdir 创建文件夹
mkdir 目录名称mkdir -p 多层目录
6.touch创建文件
touch 文件名
7.rm 删除文件或目录
rm 文件名 【删除提示框】
rm -f 文件名 【暴力删除】
rm -r 文件夹
rm -rf 文件或文件夹
8.vi 编辑文件内容
进入命令模式[不能输入内容]---->i----->编辑模式【可以输入内容】---->Esc推到命令模式 ---:wq[保存退出] ---:q![退出不保存]
9.cat | head | tail 查看文件内容
cat 查看所有内容。
cat 文件名
head 查看前n行内容 head -10 文件名
tail 查询后n行内容 tail -10 文件名
10.重命名|移动: mv
mv 源文件名 目标文件名
mv a.txt ldh.txt 把a.txt重名为ldh.txt
mv 源文件名 目标目录
mv a.txt /usr/local 把a.txt移动到/usr/local目录下
11.复制: cp
cp /usr/local/ldh.txt /xzh 把/usr/local/ldh.txt文件复制到/xzh目录下
cp -r xzh /usr/local/ 把目录xzh复制到/usr/local下
12.搜索: find
find 目录 -name '被搜索的文件名'
13.在文件中搜索指定的内容: ---grep
grep '内容' 文件名 -n
14. ls -l: 查看详细信息

15.修改权限:chmod
chmod [u|o|g]+[wxr] 文件
chmod 777 文件
16.解压缩文件:
压缩:
tar -zcvf 压缩后的名称 要压缩的目录
解压:
tar -zxvf 压缩文件 解压到当前目录
tar -zxvf 压缩文件 -C /目标目录
6. 修改ip为静态ip


vi /etc/sysconfig/network-scripts/ifcfg-ens33

重启网络: systemctl restart network
7. 安装软件
软件的安装方式:
1.二进制安装。---只需要解压就可以。 只针对特殊平台。 比如jdk tomcat
2.RPM: 按照一定的规范就可以按照该软件。 无法安装依赖的文件。
3.yum 远程安装 基于RPM 帮你把依赖的文件安装上去。 多
4.安装源码安装。 编译--->打包---->安装。
7.1 jdk---1.8
window和linux之间如何传递文件:xftp---文件传输。
(1)压缩文件上传到指定目录下

(2) 解压该文件
tar -zxvf jdk-8u161~~~~.tar.gz
(3)配置环境变量 vi /etc/profile
JAVA_HOME=jdk的安装路径
PATH=$PATH:$JAVA_HOME/bin

(4)刷新配置
source /etc/profile
7.2 安装tomcat服务器--war包
(1)上传并解压
(2)启动tomcat
进入tomcat/bin目录
./startup.sh

ps -ef | grep tomcat -----查看指定的进程

kill -9 进程号 结束进程
(3)window中的浏览器访问tomcat

我们centos的防火墙没有给8080端口号放行。
防火墙的命令:
1. 查看防火墙的状态: systemctl status firewal

2.而是设置防火墙允许放行哪些端口号
firewall-cmd --add-port=8080/tcp --zone=public --permanent
3. 重启防火墙
systemctl restart firewalld
4. 查看哪些端口号被放行
firewall-cmd --list-port
5. 防火墙移除端口号
firewall-cmd --remove-port=8080/tcp --zone=public --permanent
6. 关闭防火墙----慎重【关闭】 开启还会启动
systemctl stop firewall

7.3 安装mysql
Centos7 安装MySQL详细步骤 - 帅哥的爸爸 - 博客园
7.4 nginx

代理服务器--使用比较多的为nginx代理服务器。
什么是nginx.
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。开源软件,服务器软件.能够支持高达 50,000 个并发连接数的响应,
现在由哪些企业正在使用nginx?
1. 京东 2.淘宝 3.腾讯 4. 新浪 5.网易等
如何使用nginx
(1)安装nginx软件所需的依赖插件
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2)把我们的nginx安装包上传到linux中并解压

(3)创建一个目录作为nginx的安装目录
mkdir /usr/nginx
(4)进入nginx的解压目录

(5)设置nginx的安装路径为上面/usr/nginx

(6) 编译--安装
make
make install ---安装

conf: 配置目录
html: 放置静态资源的。
logs: 日志
sbin: 启动和关闭nginx的脚本
(7)启动nginx

./nginx 开启nginx
./nginx -s stop 关闭nginx
./nginx -s reload 重新加载配置文件---修改完配置文件后使用该命令
(8) 关闭防火墙或者放行端口
(9) 访问nginx服务器

nginx配置文件


7.4.1 nginx三大核心
反向代理:
负载均衡:
动静分离:
反向代理:
正向代理: 该服务器代理的为客户端,对于后面真实的服务器来说,不知道访问者的地址。比如:翻墙软件。

反向代理: 该服务器代理的为服务器端,对于客户来说不知道访问的真实服务器.

准备一个真实项目和Tomcat服务器 并把项目部署到Tomcat.---springboot项目

启动项目
java -jar xxxx.jar
修改nginx配置文件

重新加载nginx
./nginx -s reload

负载均衡:

修改nginx配置文件

测试:

默认负载均衡的策略为轮询策略
1)、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)


动静分离:静态资源的统一管理。

高可用:
准备条件:
192.168.223.155 [master]
192.168.223.156 [backup]

(1)需要再每个nginx所在的主机上安装keepalived
yum install -y keepalived 安装keepalived
rpm -q -a keepalived 检查是否安装keepalived
默认安装在/etc/keepalived目录


两台启动nginx
./nginx
启动keepalived
systemctl start keepalived
测试:这里的地址为虚拟ip的地址。

主的nginx关闭:
nginx -s stop
systemctl stop keepalived
8. shell脚本--了解【能看懂别人的shell】
官网:
Shell 传递参数 | 菜鸟教程
什么是shell脚本?
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
8.1 hello world入门
#!bin/bash
echo "内容"
执行脚本:

修改权限:

8.2 Shell 变量
#!/bin/bash
# echo表示输出语句
echo "hello world"
# 定义变量
name="张三"
# 使用变量${}
echo "nihao ${name} welcome to qy151"
8.3 Shell 传递参数
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……


8.4 Shell 数组
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。
与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下:

8.5 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 *`* 而不是单引号 *'*):

两点注意:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
- 完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
8.6 关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字 .

8.7 布尔运算符


8.8 逻辑运算符

8.9 Shell 流程控制
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
ps -ef | grep -c "mysql"统计某个进程的个数


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
