1 Nginx是什么?
Nginx服务器是轻量级Web服务器中广受好评的一款产品,近几年来,Nginx逐步进入高速发展的时期,从各类主流的IT媒体到各大著名的IT论坛,都能不断的看到它的身影,可以观看下图,可以知道nginx现在到底有多火。
2 常见服务器产品
1,Apache服务器
说起来apache服务器的话,相信大家对这个服务器都不陌生,不可否认,apache仍旧是当前WEB服务器的领军者,但是在具体的使用过程中,它仍然在某些方面表现的不足,比如性能方面,Apache在设计时使用了以"进程"为基础的结构,大家要知道,进程比线程消耗更多的系统开支,这导致了Apache在多处理器环境中性能有所下降,因此,在对一个Apache Web站点进行扩容时,通常是增加服务器或扩充群节点而不是增加处理器。
2,Microsoft IIS
IIS是Microsoft公司的Web服务器产品,其在全球Web服务器市场中占有相当大的市场份额,是被广泛采用的Web服务器之一,IIS的官方网址为http://www.iis.net,在此处可以找到更多关于IIS功能特性的详细介绍。作为同一家公司的产品,IIS和windows Server组合可以提供可靠,高效,完整的网络服务器解决方案,当然,作为付费软件,IIS部署成本高的缺点也是显而易见的。
3,Tomcat服务器
Tomcat在英文中是公猫或者其他雄性猫科动物,Tomcat服务器最初是由Sun公司的软件架构师詹姆斯开发的,后来变为开源项目,并由Sun公司将其贡献给了Apache软件基金会。
Tomcat是Sun公司官方推荐的Serlet和JSP容器,在中小型系统和并发访问用户不是很多的场合下,其作为轻量级应用服务器 ,被广泛使用,它是开发和调试JSP程序的首选。
Tomcat服务器作为轻量级的服务器软件,无法满足复杂业务场景的要求,也没有复杂和丰富的功能,但是Tomcat是开源的,且体积小,安装和部署起来是非常的简单方便的,系统资源占用率低,也是主要的Servlet和Tomcat容器,它在这方面比绝大多数商业应用软件服务器要好得多。
3 Nginx概述
Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
接下来,就该进行Nginx的安装与部署啦。
4 Nginx下载与安装
4.1 下载Nginx
首先打开Nginx的下载链接 点我点我,然后如图所示。
在此说下各个版本的不同吧。
Mainline version:最新版本,但是不会保证稳定。
Stable version:稳定版本,我们也是选择这个稳定版本。
Legacy versions:过去的旧版本,一般是不推荐选这个的,也不多说。
因为此处笔者要在Centos上安装Nginx,所以选择的是我现在的稳定版本Nginx-1.12.2 右键复制下载地址。然后来到咱们的Centos虚拟机上,
笔者是在/usr/local/src下进行下载编译的。这个要看个人使用环境,也可以选择根据笔者的来。输入下面这行命令:
wget http://nginx.org/download/nginx-1.12.2.tar.gz
然后回车进行下载,Nginx本身并不算大,所以很快进行下载完毕。
4.2 检查并安装所需的依赖软件
1).gcc:nginx编译依赖gcc环境
yum install gcc-c++
2).pcre:(Perl Compatible Regular Expressions)是一个Perl库,包括perl兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式.
yum install -y pcre pcre-devel
3).zlib:该库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip。
yum install -y zlib zlib-devel
4).openssl:一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。nginx不仅支持http协议,还支持https(即在ssl协议上传输http).
yum install -y openssl openssl-devel
以上四个命令分别运行,然后接下来就可以进行解压安装了。
4.3 解压Nginx。编译Nginx。
运行以下命令:
tar zxvf nginx-1.12.2.tar.gz
然后进入到解压后的Nginx目录中
cd nginx-1.12.2/
可以看到如图所示的几个目录
.配置编译参数(可以使用./configure --help查询详细参数):
使用下面这个命令就可以。也可以自定义配置。
./configure \--prefix=/usr/local/nginx
自定义配置(不推荐,因为你需要手动创建多个目录)
./configure \ --prefix=/usr/local/nginx \ --conf-path=/usr/local/nginx/conf/nginx.conf \ --pid-path=/usr/local/nginx/conf/nginx.pid \ --lock-path=/var/lock/nginx.lock \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --with-http_gzip_static_module \ --http-client-body-temp-path=/var/temp/nginx/client \ --http-proxy-temp-path=/var/temp/nginx/proxy \ --http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ --http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ --http-scgi-temp-path=/var/temp/nginx/scgi
如图所示,出现跟笔者一样的,就代表configure配置完成。
configure配置完成,接下来就要编译Nginx了。运行下面这个命令:
make && make install
如图所以,代表编译成功。
运行以下命令:
cd /usr/local/nginx
如图所示,刚编译完成后,有四个目录:
下面解释以下各个目录的作用:
....conf目录:配置文件
... htm目录:l网页文件
...logs目录:日志文件
...sbin目录:主要二进制程序
5,Nginx的启动
运行以下命令:
./sbin/nginx
如图所示,则代表nginx启动完成。
笔者发现,有些用户装了apache或者其他软件后,会占用80端口。nginx默认开启的是80端口,如果有其他服务占用了80端口,就会发生如图所示的情况。
此时,这个情况下,就需要查找一个80端口究竟是被谁给占用了。笔者因为没被占用,所以就起了两次Nginx,起两次的话,自然就会产生端口占用了。
发现此时占用80端口的pid为20250 。所以使用
kill -9 20250
来杀掉这个进程,此时用户需要给我的20250改成你们自己占用80端口的pid。
杀掉后,就用
./sbin/nginx
来启动nginx。
重启nginx
./sbin/nginx -s reload
停止nginx
./sbin/nginx -s stop
下篇文章就来详细讲解一下nginx的应用。