Nginx入门
Nginx简介
常见的Web服务器
Web服务器也称为WWW服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。
Unix和Linux平台下常用的Web服务器有以下几种:
- Apache
- Nginx
- Lighttpd
- Tomcat
- IBM WebSphere
其中应用最广泛的是Apache。
嗯,但是我们这篇文章的主角是Nginx,所以如果有同学想了解Apache的话,可以去自己查询相关资料。
Nginx诞生
Nginx是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。于2004年10月4日发布第一个公开版本1.0,开源协议是类BSD许可协议,目前最新版本是1.15.0(2018-06-05发布)
选择理由
支持高并发链接
官方测试Nginx能够支持5万并发连接,在实际生产环境中可以支撑2~4万并发连接数。这得益于Nginx使用了最新的epoll(Linux2.6内核)和kqueue(freebsd)网络I/O模型.
内存消耗少
成本低廉
开源软件,可以免费使用,并且可以用于商业用途
配置文件非常简单
支持Rewrite重写规则
能够根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组
内置的健康检查功能
如果Nginx Proxy后端的某个Web服务器宕机了,不会影响前端访问
节省带宽
支持GZIP压缩,可以添加浏览器本地缓存的Header头
稳定性高
用于反向代理,宕机的概率微乎其微
支持热部署
可以在不间断服务的情况下对软件版本进行升级
Nginx安装配置
pcre安装
pcre是一个正则表达式库,让nginx支持rewrite需要安装这个库。
下载地址
https://ftp.pcre.org/pub/pcre/
常用支持库安装
在CentOS安装软件的时候,可能缺少一部分支持库,而报错。这里首先安装系统常用的支持库。那么在安装的时候就会减少很多的错误的出现。
1 | # yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel |
gcc安装
检查是否安装了g++、gcc。rpm -qa | grep gcc 之后需要出现3个包如下图所示。
如果没有出现。需要安装g++、gcc。
1 | # yum install gcc-c++ |
上传pcre安装包到/usr/local/soft/pcre下
解压压缩包
1 | # cd /usr/local/soft/pcre |
配置
1 | # cd pcre |
编译
1 | # make |
安装
1 | # make install |
Nginx安装
判断系统是否安装了zlib-devel
1 | # rpm -qa | grep zlib-devel |
如果未安装,则使用yum进行安装
下载
http://nginx.org/en/download.html
下载稳定版本,不要下载最新版本
解压
1 | # tar -zxvf nginx-1.14.0.tar.gz |
配置
将软件安装在/usr/local/webserver目录下
1 | # cd nginx-1.14.0 |
编译和安装
1 | # make |
检查是否安装成功
1 | # cd /usr/local/webserver/nginx/sbin |
显示以下内容表示安装成功
1 | nginx: the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok |