2017-10-08Nginx编译和安装

您现在的位置是: 首页 > Linux技术 > Nginx编译和安装

402次阅读

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并作为服务启动

Nginx编译和安装

解决:

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}