第一讲 nginx简介和安装
本章要点:
- 简介
- Nginx和
- Nginx安装和一些简单操作
1.1 简介
Nginx是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理
服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
在高连接并发的情况下,Nginx是Apache服务器不错的替代品。
那么什么是反向代理和正向代理呢?
正向代理: 意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
反向代理(Reverse Proxy):方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
1.2 Nginx相对于Apache优点
常见的应用服务器: Apache/Microsoft IIS/Tomcat/Lighttpd/Nginx。
Nginx相对于Apache优点:
1)高并发响应性能非常好,官方Nginx处理静态文件并发5w/s
2)反向代理性能非常强。(可用于负载均衡)
3)内存和cpu占用率低。(为Apache的1/5-1/10)
4)对后端服务有健康检查功能。
5)支持PHP cgi方式和fastcgi方式。
6)配置代码简洁且容易上手。
1.3 Nginx安装和一些简单操作
安装
第一步:从http://nginx.org/download/上下载相应的版本(或者wget http://nginx.org/download/nginx-1.5.9.tar.gz直接在Linux上用命令下载)
第二步:解压 tar -zxvf nginx-1.5.9.tar.gz
第三步:设置一下配置信息 ./configure --prefix=/usr/local/nginx ,或者不执行此步,直接默认配置
(可能缺少的包
yum -y install gcc automake autoconf libtool make
yum install gcc gcc-c++
yum -y install pcre-devel
yum install -y zlib-devel)
第四步:
make 编译 (make的过程是把各种语言写的源码文件,变成可执行文件和各种库文件)
make install 安装 (make install是把这些编译出来的可执行文件和库文件复制到合适的地方)
在配置信息的时候,也就是在第三步,出现了一下错误:
错误为:./configure: error: the HTTP rewrite module requires the PCRE library.
那么需要安装pcre-devel解决问题
yum -y install pcre-devel
还有可能出现:
错误提示:./configure: error: the HTTP cache module requires md5 functions
from OpenSSL library. You can either disable the module by using
--without-http-cache option, or install the OpenSSL library into the system,
or build the OpenSSL library statically from the source with nginx by using
--with-http_ssl_module --with-openssl=<path> options.
解决办法:
yum -y install openssl openssl-devel
安装后在linux下启动和关闭nginx:
启动操作
/usr/nginx/sbin/nginx
(/usr/nginx/sbin/nginx -t 查看配置信息是否正确)
停止操作
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文 章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里 面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
另外, 若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文 件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'
平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx 发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
或者使用
/usr/nginx/sbin/nginx -s reload
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正 确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
或者
/usr/nginx/sbin/nginx -t
环境使用yum安装,可能遇到一个问题:
Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again
处理很简单,修改文件“/etc/yum.repos.d/epel.repo”, 将baseurl的注释取消, mirrorlist注释掉就行。
还有可能遇到以下这个错误:
Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
这个错误其实也很简单,错误信息已经提示你,就是xxxxxx.repo这个文件有问题。
(1)打开/etc/yum.repos.d/xxxxxx.repo文件
(2)enabled=1改成enabled=0