最近总是零碎的听到Nginx、反向代理等词语。好不容易工作略有清闲,打算静下来了解一下Nginx。
希望在这篇博客写完之后,可以弄明白下面几个问题:
1、什么是Nginx。
2、Nginx是怎么产生的,它解决了什么问题。
3、Nginx简单部署。
4、什么是反向代理。
5、什么是负载均衡。
6、在什么场景下会想到Nginx。
为了解决这几个问题,我的学习方法是:
先去视频网站上找一些视频进行入门了解。比如极客学院。
然后自己动手搭建一次Nginx的环境。
最后通过网上找一些博客材料,来扩充Nginx的知识,并将这些知识汇总,逐渐在这篇博客中风趣。
■什么是Nginx
由俄罗斯的程序设计师Igor Sysoev所开发。
如apache、tomcat等服务器软件一样,Nginx要是一种服务器软件之一。
在百度百科上可以查看到非常全面的Nginx的定义。总结如下:
Nginx(发音同engine x)是一个网页服务器,它能反向代理HTTP、HTTPS、SMTP、POP和IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。
■Nginx是怎么产生的,它解决了什么问题
http://www.91linux.com/html/2017/Apache_0508/53841.html
这篇博客里比较全面的介绍了apache与nginx的区别,可供参考。
最核心的区别在于:
apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)可以对应一个进程。nginx处理请求是异步非阻塞的,而apache则是阻塞型的。
Nginx占用更少的内存及资源,抗并发。apache的rewrite更强大,bug少,更稳定。
总之,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache。
■Nginx的配置:
1、前提环境准备
2、解压缩文件
3、使用configure脚本检查配置
4、使用make命令编译文件
5、使用make install命令安装文件
6、检查nginx安装是否成功
7、启动nginx
下面来依次实践
1、前期准备:linux环境、nginx安装包
这里Linux环境,我选择的是Redhad7.2
nginx安装包可以从官网(http://nginx.org/)上下载,我这里下载的是nginx-1.12.0
将下载的安装包,通过文件上传工具上传至linux系统环境里面。
2、解压缩:tar -zxvf nginx-1.12.0.tar.gz
移动文件至/home/hadmin。命令:mv nginx-1.12.0 /home/hadmin/
这样就下载完nginx,并将文件解压缩到指定的路径下面了。
3、通过/home/hadmin/nginx-1.12.0下面的configure脚本来检查nginx的配置环境。
configure的作用:在编译安装Nginx时,我们需要使用configure命令做大量"幕后“工作,包括检测操作系统内核和已经安装的软件,参数解析,中间目录生成以及根据各种参数生成的.c文件、Makefile文件等。
参考博文:http://blog.csdn.net/fzy0201/article/details/17683883
问题一:
如下所示:
解决办法:使用yum命令安装相应的库文件。命令:yum -y install gcc gcc-c++ autoconf automake
问题二:
如下所示: 找不到库文件PCRE。
解决办法:使用yum命令安装相应的库文件。命令:yum -y install pcre pcre-devel
问题三:
如下所示:找不到zlib库文件
解决办法:使用yum命令安装相应的库文件。命令:yum -y install zlib zlib-devel
4、使用make命令来编译
正常编译结果:
5、使用make install命令来安装文件
正常安装结果:
6、检查nginx是否正常安装。如果正常安装会在/usr/local下面出现nginx的文件夹
安装前/usr/local下面的文件:
安装后/usr/local下面的文件:
nginx文件下面的文件夹包括:
7、使用命令/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf来启动nginx
也可以直接使用/usr/local/nginx/sbin/nginx,不带配置文件参数,此时默认使用nginx.conf启动。
■什么是反向代理:
请参考博文:https://my.oschina.net/yoyoko/blog/147414
■什么是负载均衡
负载均衡的4中配置方法:http://www.jb51.net/article/60523.htm
(后续更新)