Nginx编译和安装
Nginx 是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。最早由俄罗斯的程序设计师Igor Sysoev所开发,并在一个BSD-like 协议下发行。其特点是轻量级,占有内存少,并发能力强,目前发展势头强劲。web领域最经典的lamp组合已变成lnmp组合。
一、Nginx编译与启动
到官方网站 http://nginx.org 寻找最新stable版,下载
例: http://nginx.org/download/nginx-1.4.7.tar.gz
安装准备: nginx依赖于pcre库,要先安装pcre
yum install pcre pcre-devel\rcd /usr/local/src/\rwget http://nginx.org/download/nginx-1.4.2.tar.gz\rtar zxvf nginx-1.4.2.tar.gz \rcd nginx-1.4.2\r./configure --prefix=/usr/local/nginx\rmake && make install
注意:
为什么要先安装pcre? 因为:nginx要在rewrite时要解析正则表达式,PCRE是正则解析库
二、Nginx目录介绍
编译安装后,看到如下4个目录
conf 配置文件 html 网页文件 logs 日志文件 sbin 主要二进制程序 |
三、启动nginx
cd /usr/local/nginx\r./sbin/nginx
没有出现错误提示,则启动成功了.
如果有错误,则根据错误提示再做处理.
常见的错误是”80端口被占用”
四、80端口被占用的解决
如果出现不能绑定80端口,80端口已经被占用
./sbin/nginx \rnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)\rnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)\rnginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in \rnginx: [emerg] still could not bind()
有时是自己装了apache,nginx等,还有更多情况是操作系统自带了apache并作为服务启动
解决:
1. 把占用80端口的软件或服务关闭即可.
2. 如果是linux系统自带apache且自动启动. service httpd stop
3. 如果是自行编译安装的,可以 # /path/to/apacht/bin/apachctl stop
如果检测确实没有其他程序占据80端口,但仍报此错,则可能是因为Nginx试图同时监听IPV4和IPV6的80端口导致的.(nginx1.4.0版本曾有此问题)
server {\r listen :80;\r listen [::]:80;\r}
可以按如下2种办法修改
server {\r listen 80;\r listen [::]:80 ipv6only=on;\r}
或者
server {\r listen [::]:80;\r}