在家学习了nginx的笔记,分享出来对和我一样对nginx迷茫的人会有一些帮助,虽然网络上大神已经有很多独到的见解,你实践过的才是你的知识和体会。
我们为什么使用Nginx?
优点 | 备注 |
---|---|
采用异步多路复用IO 的Epoll模型 ,分布式,不阻塞 | |
轻量级,占用更少的内存及资源 | |
CPU亲和(affinity) | |
出色的代理、复杂均衡服务 |
-
yum安装
目录切换到
/etc/yum.repos.d
这个目录,这里是自定义yum源目录 ,添加nginx.repo
文件,代码如下:
[nginx]
#centos/7 这是我自己的centos版本 你根据自己的版本号书写即可
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
执行 yum -y install nginx
,因为我本地已经安装过,所以如下图;
- Brew安装
brew和yum一样都是第三方安装神器,执行brew install nginx
执行时间会稍微有点慢,自动下载并安装nginx ,在brew上有很多软件可以安装,这是我本机安装的列表。
nginx -v/V
(大V是查看安装了多少模块),brew list | cat -n
查看本机brew
的安装列表,如下图;
<img src=>
#nginx 常用命令
nginx # 启动Nginx
nginx -t # 测试配置文件是否有错误
nginx -v # 查看Nginx版本
nginx -V # 查看Nginx版本和编译安装时的编译参数
nginx -s stop # 强制停止Nginx服务
nginx -s quit # 优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -s reload # 重新加载Nginx配置文件,然后以优雅的方式重启Nginx
- Nginx与动态语言的通信(cgi和fastcgi的区别)
Cgi(通用网关接口)Web服务器提供信息服务的标准接口,Nginx通过Cgi接口,能够获取客户端提交的信息,转交给服务器的Cgi程序进行处理,最后返回给客户端,工作原理如下图;
工作原理:每当客户信息请求Cgi的时候,Web服务器就请求操作系统生成一个新的Cgi进程,该进程请求后退出,下一个请求来的时候再创建进程
;
当访问量超级大的时候这种方式就不合适了,所以有了现在的FastCgi
FastCgi
像是一个常驻(long-live)
型的Cgi,它可以一直执行,只要激活后,不会每次花时间fork一次。
在每次启动或停止时,Nginx的灵魂在于配置和监听的端口,之前我一直有一个非常大的疑问,一台Server上运行多台Nginx的Web服务会怎样
,Nginx服务在于监听的端口,只要端口号不冲突,不会有很大的影响,现在想想茅塞顿开,代码如下:
在/usr/local/etc/nginx
这个模块下有FastCgi,sCgi,uwsgi可以解析PHP Python 等多方模块,他们的秘密都在server的配置信息里
Nginx还有一些常用的log_format 防盗链 Rewrite 负载均衡 以后有机会在更新博客。