实验楼里的github以及nginx

git config --global user.name "Scott Chacon"创建用户名

git config --global user.email "schacon@gmail.com"创建邮箱

然后通过ls -al可以看到一个.gitconfig的文件

我们需要一个Git仓库,有两种办法可以得到他,一种是从已有的Git仓库中clone还有一种是新建一个仓库,把未进行版本控制的进行版本控制。

git clone https://github.com/shiyanlou/gitproject克隆一个仓库

创建代码目录project ,mkdir project

进入到代码目录,创建并初始化GIT仓库,git init

git的基本流程如下:
创建或修改文件
使用git add命令添加新创建或修改的文件到本地的缓存区(Index)
使用git commit命令提交到本地代码库
(可选,有的时候并没有可以同步的远端代码库)使用git push命令将本地代码库同步到远端代码库

创建文件touch file1 file2 file3

echo "test">>file1

echo "test">>file2

echo "test">>file3

git status查看当前仓库的状态

git add将他们加入到缓冲区,git add file1 file2 file3

git diff --cached看看缓冲区中那些文件被修改了

git commit -m "add 3 files"提交到本地仓库

git branch experimental创建一个分支,一个仓库可以维护很多开发分支的

git checkout experimental切换到该分支

echo "update">>file1修改文件

git add file1;git commit -m "update file1"

cat file1查看

同样在master分支下修改file2,然后接下来合并

git checkout master; git merge -m 'merge experimental branch' experimental

git reset --hard HEAD^撤销合并

git log查看所有的提交

git log --start相当于打印详细的提交记录

git log --pretty=oneline按你的要求来格式化日指输出




nginx是一款高性能的HTTP和反向代理服务器软件,已经成为非常流行的WEB服务器软件

nginx为性能而生,从发布以来一直侧重与高性能,高并发,低CPU内存消耗,在功能方面负载均衡,反向代理,访问控制,热部署,搞扩展性,等特性又十分适合现代的网络架构。

nginx和Apache相同点

同是HTTP服务器软件,都采用模块化结构设计

支持通用语言接口,如PHP Python

支持正向代理和反向代理

支持虚拟主机及ssl加密传输

支持缓存及压缩传输

支持URL重写

模块多,扩展性强

多平台支持

Nginx的优势

轻量级 安装文件小 运行时CPU内存使用率低
性能强 支持多核,处理静态文件效率高,内核采用的poll模型最大可以支持50K并发连接
支持热部署 同时启动速度快,可以在不间断服务的情况下对软件和配置进行升级
负载均衡 支持容错和健康检查
代理功能强大 支持无缓存的反向代理,同时支持IMAP/POP3/SMTP的代理

Nginx由内核和一系列模块组成,内核提供web服务的基本功能,如启用网络协议,创建运行环境,接收和分配客户端请求,处理模块之间的交互,他的各功能和操作都有模块来实现,模块从结够上分为核心模块,基础模块,第三方模块

核心模块: HTTP模块、EVENT模块和MAIL模块
基础模块: HTTP Access模块、HTTP FastCGI模块、HTTP Proxy模块和HTTP Rewrite模块
第三方模块: HTTP Upstream Request Hash模块、Notice模块和HTTP Access Key模块及用户自己开发的模块

如何充分利用多台服务器的资源,就需要一个’调度员‘,这个调度员要求能高效的接收并分发请求,知道后端的服务器健康状态,要能方便的扩展和移除,这就是Nginx又一常见应用架构,此架构充分利用了Nginx的反向代理和负载均衡的优势,Nginx本身不提供web服务,而是在前端接受web请求并分发到后端服务器处理,后端服务器可以是Apache,tomcat,IIS等。

sudo apt-get update;  sudo apt-get install nginx;

sudo service nginx start;开启

sudo vim /etc/nginx/sites-available/default该配置


sudo nginx -t测试配置问件

sudo service nginx reload记得重载配置文件

sudo apt-get install mysql-server mysql-client服务端安装


sudo apt-get install php5-fpm安装PHP

sudo vim /usr/share/nginx/html/phpinfo.php;写一个Php文件保存到该目录

sudo service php5-fpm start开启

sudo apt-get install php5-mysql安装php-mysql模块

sudo service php5-fpm restart重启php

nginx的代码是由一个核心和一系列的模块组成

这些功能模块大致可以分为事件模块、阶段性处理器、输出过滤器、变量处理器、协议、upstream 和负载均衡几个类别,这些共同组成了 nginx 的 http 功能。事件模块主要用于提供 OS 独立的(不同操作系统的事件机制有所不同)事件通知机制如 kqueue 或 epoll 等。协议模块则负责实现 nginx 通过 http、tls/ssl、smtp、pop3 以及 imap 与对应的客户端建立会话。在 Nginx 内部,进程间的通信是通过模块的 pipeline 或 chain 实现的;换句话说,每一个功能或操作都由一个模块来实现。例如:压缩、通过 FastCGI 或 uwsgi 协议与 upstream 服务器通信、以及与 memcached 建立会话等。

nginx支持多线程的方式的,启动后,在deamon的方式在后台运行,后台进程包含一个master进程和多个worker进程

nginx不会为每个链接派生进程或线程,而是由worker进程通过监听共享套接字接受新请求,并且使用搞高校的循环来处理连接。nginx不是有仲裁器或分发器来分发连接,这个工作有操作系统内核机制完成,监听套接字在启动时就完成初始化,work进程通过这些套接字接受读取请求和输出响应

当 nginx 在启动后,会有一个 master 进程和多个 worker 进程。master进程主要用来管理worker进程,master 要做的就是:接收来自外界的信号,向各 worker 进程发送信号,监控 worker 进程的运行状态,当 worker 进程退出后(异常情况下),会自动重新启动新的 worker 进程

读取并验证配置信息

创建绑定及关闭套接字

启动终止worker进程及维护worker进程的个数

无需终止服务而重新配置工作

控制非中断式程序升级,启用新的二进制程序并在需要事回滚至老版本

重新打开日志文件

编译嵌入式perl脚本

多个 worker 进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个 worker 进程中处理,一个 worker 进程,不可能处理其它进程的请求(一对一)。然而 nginx 没有专门地仲裁或连接分布的 worker,这项工作是由操作系统内核机制完成的。在启动时,创建一组初始的监听套接字,HTTP 请求和响应之时,worker 连续接收、读取和写入套接字

worker进程主要完成的任务

接收传入并处理来自客户端的链接

提供反向代理及过滤功能

nginx任何能完成的其他任务

一个请求完全由worker进程来处理,而且只在一个worker进程处理

每个worker里面只有一个主线程能够处理的并发数很有限,nginx采用异步非阻塞的方式处理请求,可以同时处理成千上万个请求的

阻塞是事件按顺序执行,每一事件都要等待上一事件完成,而非阻塞是如果事件没有准备好,这个事件可以直接返回,过一段时间在进行处理询问,者期间可以坐其他事情

handler模块

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值