hydd的LInux笔记Day34

这篇笔记涵盖了Linux中的代理服务器,包括其工作机制、Varnish服务器的使用,以及Git工具的详细讲解,如版本库的概念、Git基本操作、分支管理和冲突解决等。
摘要由CSDN通过智能技术生成

Day34

代理服务器概述

基本概念

​ 代替用户处理事务:能提供正常情况下不便访问或无法访问的资源

​ 应用场景:web访问加速(正/反向),IP伪装、翻墙

代理服务器工作机制

​ Cache池的复用

​ 线路转移

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u6CFNbzg-1603672344292)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1603330023660.png)]

Varnish服务器

​ Varnish一款高性能且开源的反向代理服务器

​ Varnish具有性能高、速度更快、管理更方便等诸多优点

使用Varnish加速WEB

部署Varnish

​ 准备一台网页服务器(安装启动httpd服务)和代理服务器

代理服务器配置


安装依赖包
 yum -y install  python-docutils gcc readline-devel pcre-devel
下载安装varnish源码编译包
创建账户
 useradd -s /sbin/nologin varnish
拷贝配置文件(在源码编译包里拷贝)
[root@proxy varnish-5.2.1]# cp etc/example.vcl /usr/local/etc/default.vcl
修改配置文件
vim /usr/local/etc/default.vcl、
	backend default {
     host = "192.168.2.100";		//网页服务器地址
 	 port = "80";
 	}
启动服务
varnishd -f /usr/local/etc/default.vcl
注:该服务重启只能通过杀死进程的方式
使用浏览器测试

Git工具

版本管理工具

版本库

​ 典型的客户/服务器系统

​ 版本是版本控制的核心

​ 任意数量客户端

​ 客户端通过写数据库分享代码

# [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FOYlifmU-1603672344295)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1603334161218.png)]
版本库分类

​ 1.集中式版本控制系统

​ 开发者之间共用一个仓库

​ 所有操作需要联网

​ 2.分布式版本控制系统

​ 每个开发者都是一个仓库的完整克隆,每个人都是服务器

​ 支持断网操作

常用软件

​ svn:集中式 用户在使用该服务时,需要时刻与服务器保持在线状态,数据库统一保存在svn服务器中

​ git:分布式 用户在使用该服务器时,不需要时刻与服务器保持在线状态,仅仅传递数据时需要联网,数据保存在git服务器与git客户端里

Git基本概念

​ Git仓库:保存所有数据的地方

​ 工作区:从仓库提取出来的文件,放在磁盘

​ 暂存区;就是个文件,索引文件,保存了下次提交的文件列表信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-67UkkjDV-1603672344296)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1603337817203.png)]

Git服务器设置

​ 安装软件客户端服务器都要安装

	yum -y install git

​ 创建服务器仓库

mkdir /var/lib/git
git init /var/lib/git/project --bare	//创建了一个空的可读可写仓库

客户端配置

客户端访问方式

克隆仓库(本地访问)
git clone ip地址:/var/lib/git/project
远程ssh访问
git clone root@服务器IP:/var/lib/git

web
服务器需要额外配置Web服务器
客户端可以浏览访问
git clone https://服务器IP/git仓库
Git clone https://服务器IP/git仓库

客户端命令行工具

clone	将远程服务器的仓库克隆到本地
config	修改git配置
add		添加修改到暂存区
commit	提交修改到本地仓库
push	提交修改到远程服务器

客户端操作流程示例

1.clone克隆服务器仓库到本地。

[root@web2 ~]# yum -y install git
[root@web2 ~]# git clone root@192.168.2.100:/var/lib/git/project 
[root@web2 ~]# cd project
[root@web2 ~]# ls 

2 修改git配置。

[root@web2 project]# git config --global user.email "you@example.com"
[root@web2 project]# git config --global user.name "Your Name"
[root@web2 project]# cat ~/.gitconfig 
[user]
    email = you@example.com
    name = Your Name

3。本地工作区对数据进行增删改查(必须要先进入仓库再操作数据)。

[root@web2 project]# echo "init date" > init.txt
[root@web2 project]# mkdir demo
[root@web2 project]# cp /etc/hosts demo

4。查看仓库中数据的状态。

[root@web2 project]# git status

5. 将工作区的修改提交到暂存区。

[root@web2 project]# git add .

6.将暂存区修改提交到本地仓库。

[root@web2 project]# git commit  -m  "注释,可以为任意字符"
[root@web2 project]# git status

7.将本地仓库中的数据推送到远程服务器(web2将数据推送到web1)。

[root@web2 project]# git config --global push.default simple
[root@web2 project]# git push
root@192.168.2.100's password:  输入服务器root密码
[root@web2 project]# git status

8.将服务器上的数据更新到本地(web1的数据更新到web2)。

备注:可能其他人也在修改数据并提交服务器,就会导致自己的本地数据为旧数据,使用pull就可以将服务器上新的数据更新到本地。

[root@web2 project]# git pull

9. 查看版本日志。

[root@web2 project]# git log
[root@web2 project]# git log --pretty=oneline		//精简日志
[root@web2 project]# git log --oneline	//最 精简日志
[root@web2 project]# git reflog	   //查看本机操作日志


HEAD指针

HEAD指针概述

​ HEAD指针是一个可以在任何分支和版本移动的指针

​ 通过移动指针我们可以将数据还原至任何版本

HEAD指针的基本操作
1.准备工作(多对数据仓库进行修改、提交操作,以产生多个版本)。

[root@web2 project]# echo "new file" > new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "add new.txt"
[root@web2 project]# echo "first" >> new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "new.txt:first line"
[root@web2 project]# echo "second" >> new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "new.txt:second"
[root@web2 project]# echo "third" >> new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "new.txt:third"
[root@web2 project]# git push
[root@web2 project]# echo "123" > num.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "num.txt:123"
[root@web2 project]# echo "456" > num.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "num.txt:456"
[root@web2 project]# echo "789" > num.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "num.txt:789"
[root@web2 project]# git push
2.查看Git版本信息。

[root@web2 project]# git reflog
[root@web2 project]# git log --oneline
04ddc0f num.txt:789
7bba57b num.txt:456
301c090 num.txt:123
b427164 new.txt:third
0584949 new.txt:second
ece2dfd new.txt:first line
e1112ac add new.txt
1a0d908 初始化
3.移动HEAD指针,将数据还原到任意版本。

提示:当前HEAD指针为HEAD@{0}。

[root@web2 project]# git reset --hard 301c0
[root@web2 project]# git reflog
301c090 HEAD@{0}: reset: moving to 301c0
04ddc0f HEAD@{1}: commit: num.txt:789
7bba57b HEAD@{2}: commit: num.txt:456
301c090 HEAD@{3}: commit: num.txt:123
b427164 HEAD@{5}: commit: new.txt:third
0584949 HEAD@{6}: commit: new.txt:second
ece2dfd HEAD@{7}: commit: new.txt:first line
e1112ac HEAD@{8}: commit: add new.txt
1a0d908 HEAD@{9}: commit (initial): 初始化
[root@web2 project]# cat num.txt                #查看文件是否为123
123
[root@web2 project]# git reset --hard 7bba57b
[root@web2 project]# cat num.txt                #查看文件是否为123,456
123
456
[root@web2 project]# git reflog                #查看指针移动历史
7bba57b HEAD@{0}: reset: moving to 7bba57b
301c090 HEAD@{1}: reset: moving to 301c0
… …
[root@web2 project]# git reset --hard 04ddc0f    #回到最后一次修改的版本

Git分支

分支的基本概念

​ 分支可以让开发分多条主线同时进行,每一条主线互不影响。

​ 按功能模块分支、按版本分支

​ 分支也可以合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ayV9oI1w-1603672344298)(C:\Users\BJTT\AppData\Roaming\Typora\typora-user-images\1603351950740.png)]

常见的分支规范如下:

​ MASTER分支(MASTER是主分支,是代码的核心)。

​ DEVELOP分支(DEVELOP最新开发成果的分支)。

​ RELEASE分支(为发布新产品设置的分支)。

​ HOTFIX分支(为了修复软件BUG缺陷的分支)。

​ FEATURE分支(为开发新功能设置的分支)。

查看创建分支

1)查看当前分支。

[root@web2 project]# git status
# On branch master
nothing to commit, working directory clean
[root@web2 project]# git branch -v
* master 0dc2b76 delete init.txt
2)创建分支。

[root@web2 project]# git branch hotfix
[root@web2 project]# git branch feature
[root@web2 project]# git branch -v
  feature 0dc2b76 delete init.txt
  hotfix  0dc2b76 delete init.txt
* master  0dc2b76 delete init.txt

切换与合并分支

1)切换分支。

[root@web2 project]# git checkout hotfix
[root@web2 project]# git branch -v
  feature 0dc2b76 delete init.txt
* hotfix  0dc2b76 delete init.txt
master  0dc2b76 delete init.txt
2)在新的分支上可以继续进行数据操作(增、删、改、查)。

[root@web2 project]# echo "fix a bug" >> new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "fix a bug"
3)将hotfix修改的数据合并到master分支。

注意,合并前必须要先切换到master分支,然后再执行merge命令。

[root@web2 project]# git checkout master
[root@web2 project]# cat new.txt        #默认master分支中没有hotfix分支中的数据
[root@web2 project]# git merge hotfix
Updating 0dc2b76..5b4a755
Fast-forward
 new.txt | 1 ++
 1 file changed, 1 insertions(+)

解决版本分支的冲突问题

1)在不同分支中修改相同文件的相同行数据,模拟数据冲突。

[root@web2 project]# git checkout hotfix
[root@web2 project]# echo "AAA" > a.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "add a.txt by hotfix"
[root@web2 project]# git checkout master
[root@web2 project]# echo "BBB" > a.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "add a.txt by master"
[root@web2 project]# git merge hotfix
自动合并 a.txt
冲突(添加/添加):合并冲突于 a.txt
自动合并失败,修正冲突然后提交修正的结果。
2)查看有冲突的文件内容,修改文件为最终版本的数据,解决冲突。

[root@web2 project]# cat a.txt                #该文件中包含有冲突的内容
<<<<<<< HEAD
BBB
=======
AAA
>>>>>>> hotfix
[root@web2 project]# vim a.txt              #修改该文件,为最终需要的数据,解决冲突
BBB
[root@web2 project]# git add .
[root@web2 project]# git commit -m "resolved"
总结:分支指针与HEAD指针的关系。

创建分支的本质是在当前提交上创建一个可以移动的指针
如何判断当前分支呢?答案是根据HEAD这个特殊指针

突然后提交修正的结果。
2)查看有冲突的文件内容,修改文件为最终版本的数据,解决冲突。

[root@web2 project]# cat a.txt #该文件中包含有冲突的内容
<<<<<<< HEAD
BBB

AAA
>>>>>>> hotfix
[root@web2 project]# vim a.txt #修改该文件,为最终需要的数据,解决冲突
BBB
[root@web2 project]# git add .
[root@web2 project]# git commit -m “resolved”
总结:分支指针与HEAD指针的关系。

创建分支的本质是在当前提交上创建一个可以移动的指针
如何判断当前分支呢?答案是根据HEAD这个特殊指针
``

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值