Linux 浅尝 —— 网站项目搭建初期知识整理,客户端服务器交互原理

服务器目录

.
/etc  配置文件
/bin 就是常用命令
/home  用户文件的根目录   相当于win的我的文档
/usr   额外安装的linux软件
/srv 一般是我们自己创建的  表示服务 阿里云自带一个空的srv目录

网络

所谓网络  本质就是共享数据

起初  主机都是单机的

之所以叫计算机

是因为最早之前只能用来计算

局域网

一个主机可以访问另一个主机了

它们互相连接 组成了局域网

互联网

再发展就是互联网

但本质上还是一个主机和另一个主机的连接数据交换

互联网

客户端和服务端

再后来  衍生出来用户和服务

客户端和服务端的概念

主机有很多操作系统:

* windoms利用可视化捕获一大批客户端用户
* linux利用高效捕获了服务端的市场

客户端和服务端跟操作系统无关的  每个操作系统都可作为客户端和服务端

所以服务器的定义就是: 接受请求并返回数据的主机

客户端和服务端

那么就有人给这些主机开发服务器软件

服务器软件就是:处理请求和响应的软件,一般服务器都会存在服务器软件用来提供接受请求并响应

很著名的就是Tomcat

(所有的数据库其本质也是自带了服务器功能,主要功能是把数据保存在本地,次要功能也可以接受请求并响应,不需要通过别的软件)

代理

在技术多变的今天,客户端和服务端就有很重要的问题 那就是安全 

于是就有了 代理 技术

所谓代理,就是客户端不想让服务端知道自己的真实地址,简单理解就是  VPN

代理

这样隐藏了真实的客户端地址和身份

游戏加速器就是这个原理

自己的地址被墙了 我们可以通过代理去请求数据 我们和代理交换数据就可以啦

  • 正向代理

客户端主动访问 服务端被动接受请求 因为正向代理就是保护客户端的

正向代理

  • 反向代理

客户端请求服务端 服务端用一个向外暴露的服务器去接受 然后转发到真实服务器

保护服务器真实地址

反向代理

域名和域名服务器

它隐藏了真实服务器的ip而暴露一个自定义域名 类似反向代理服务器

域名和域名服务器

域名服务器(DNS服务器)就是提供IP地址和域名之间的转换服务的服务器

域名和IP地址相互映射(这真实ip是在买域名的时候 后台可以设置的 这就叫域名解析)

DNS域名解析原理

host就是本地DNS   输入网址  客户端首先找本地DNS没找到对应ip才会去网络DNS找  找到之后会带着网址向目标ip请求

浏览器访问服务器原理:

DNS域名解析原理

一个服务器请求量过大,服务器的后端程序会内存溢出,导致502

代理ip可分发到多个实际服务器ip

后端有两个解决方式:

  • 分布式

就是把一个服务拆分为多个

一个业务分拆多个子业务,部署到不同的功能服务器,一个挂了就挂了😂 

(如果项目不大 它一般安装在和服务同一台服务器里 直接把请求转到本地的服务器软件里)

  • 集群

就是部署多个项目统一管理接受请求

一套项目部署多台服务器,其中一台挂了,其他的可继续访问

假设有多个服务器作为集群 那么怎么保证所有的请求均分而不导致某一个服务器被挤爆呢

(如果项目特大 一般单独安装在一个服务器里 还可以实现负载均衡)

——负载均衡

大型服务主要是解决两个事:

  • 高吞吐就是能承载高并发的请求处理
  • 高可用就是系统的可用程度,包括安全 流畅 不出差错等等

Nginx

  • 反向代理服务器

反向代理服务器是它最最主要的功能,能隐藏掉其服务器真实ip和端口

  • 实现负载均衡

反向代理服务器在做负载均衡来实现所有集群节点的平均分配

  • HTTP服务器(静态资源服务器)

反向代理服务器可以把请求转到本地的服务器软件里

这个服务器软件可以是Tomcat  也可以是nginx

在前后端分离的时代  也就是现在   前端页面可以丢给nginx做静态映射   后端服务可以交给tomcat

正向代理

服务处理发展史

  1. 裸奔时代
    裸奔时代

域名访问 -> 服务商域名解析,通过域名找到ip -> 拿到ip访问tomcat -> 返回页面

  1. DNS轮循
    DNS轮循

1个域名映射3个ip  自带负载均衡(高吞吐 低可用)

假设一个tomcat的并发量是每秒1000,那么这个服务的并发量就是每秒3000

  1. Nginx
    Nginx

高吞吐 中可用

其中一个tomcat挂掉了,可正常访问,nginx挂掉了就挂掉了

  1. keepalived
    keepalived

keepalived实现nginx集群 挂一个还有一个

  1. keepalived+lvs
    keepalived+lvs

nginx被lvs负载均衡 同时还负载均衡tomcat

lvs是操作系统层面 请求不容易超过并发 同时lvs还是集群的 挂掉一个还有

超高并发+超高可用

给nginx集群一个负载均衡 请求会平分到各个nginx 各个nginx再反向代理+负载均衡到各个tomcat

Nginx基本命令

Linux安装和升级yarn及node

Linux 命令大全

Linux 命令大全
1、文件管理
cat chattr chgrp chmod chown cksum cmp diff
diffstat file find git gitview indent cut ln
less locate lsattr mattrib mc mdel mdir mktemp
more mmove mread mren mtools mtoolstest mv od
paste patch rcp rm slocate split tee tmpwatch
touch umask which cp whereis mcopy mshowfat rhmask
scp awk read updatedb
2、文档编辑
col colrm comm csplit ed egrep ex fgrep
fmt fold grep ispell jed joe join look
mtype pico rgrep sed sort spell tr expr
uniq wc let
3、文件传输
lprm lpr lpq lpd bye ftp uuto uupick
uucp uucico tftp ncftp ftpshut ftpwho ftpcount
4、磁盘管理
cd df dirs du edquota eject mcd mdeltree
mdu mkdir mlabel mmd mrd mzip pwd quota
mount mmount rmdir rmt stat tree umount ls
quotacheck quotaoff lndir repquota quotaon
5、磁盘维护
badblocks cfdisk dd e2fsck ext2ed fsck fsck.minix fsconf
fdformat hdparm mformat mkbootdisk mkdosfs mke2fs mkfs.ext2 mkfs.msdos
mkinitrd mkisofs mkswap mpartition swapon symlinks sync mbadblocks
mkfs.minix fsck.ext2 fdisk losetup mkfs sfdisk swapoff
6、网络通讯
apachectl arpwatch dip getty mingetty uux telnet uulog
uustat ppp-off netconfig nc httpd ifconfig minicom mesg
dnsconf wall netstat ping pppstats samba setserial talk
traceroute tty newaliases uuname netconf write statserial efax
pppsetup tcpdump ytalk cu smbd testparm smbclient shapecfg
7、系统管理
adduser chfn useradd date exit finger fwhios sleep
suspend groupdel groupmod halt kill last lastb login
logname logout ps nice procinfo top pstree reboot
rlogin rsh sliplogin screen shutdown rwho sudo gitps
swatch tload logrotate uname chsh userconf userdel usermod
vlock who whoami whois newgrp renice su skill
w id groupadd free
8、系统设置
reset clear alias dircolors aumix bind chroot clock
crontab declare depmod dmesg enable eval export pwunconv
grpconv rpm insmod kbdconfig lilo liloconfig lsmod minfo
set modprobe ntsysv mouseconfig
passwd pwconv rdate resize rmmod grpunconv modinfo time
setup sndconfig setenv setconsole timeconfig ulimit unset chkconfig
apmd hwclock mkkickstart fbset unalias SVGATextMode gpasswd
9、备份压缩
ar bunzip2 bzip2 bzip2recover gunzip unarj compress cpio
dump uuencode gzexe gzip lha restore tar uudecode
unzip zip zipinfo
10、设备管理
setleds loadkeys rdev dumpkeys MAKEDEV poweroff

其他命令

Linux bc 命令

Linux tail 命令

Linux head 命令

Linux xargs 命令

Linux ip 命令

Linux nohup 命令

扩展文章

Linux 常用命令全拼