前提:环境centos linux 6.2 系统

     采用源码安装方式

     安装依赖包:g++、gcc、openssl-devel、pcre-devel和zlib-devel软件

简介:

什么是Nginx?

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下Nginx 是 Apache 服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪、网易、 腾讯,另外知名的微网志Plurk也使用nginx。

  Nginx 作为 负载均衡 服务器:

Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP 代理服务器对外进行服务。 Nginx 采用 C 进行编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好很多。作为邮件代理服务器:

  Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验。Nginx 是一个安装非常简单,配置文件非常简洁(还能够支持perl语法), Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到 7*24 不间断运行,即使运行数个月也不需要重新启动。 你还能够不间断服务的情况下进行软件版本的升级。


1、安装依赖包: yum install gcc-c++ -y

              yum install zlib zlib-devel openssl openssl--devel pcre pcre-devel -y

2、下载最新稳定版nginx:wget http://nginx.org/download/nginx-1.4.2.tar.gz

3、安装nginx

  首先把ngxin-1.4.2.tar.gz copy到/usr/local下

  #tar -zxvf nginx-1.4.2.tar.gz

  #cd nginx-1.4.2

  #./configure --prexfix=/usr/local/nginx-1.4.2 \

   --conf-path=/usr/local/nginx-1.4.2/nginx.conf \

(注意:很多编译安装的说明都没有设置conf-path,但是我这里没有设置的话,在make install 中会报 cp: `conf/koi-win' and `/usr/local/nginx/conf/koi-win' are the same file 的错误)

  #make

   #make install


{ 注:在./configure的时候可以详细加上以下参数,仅供参考

 

./configure --prefix=/usr/local/nginx-1.2.3 \

--conf-path=/usr/local/nginx-1.2.3/nginx.conf \

--openssl-path=/usr/local/openssl-1.0.1c \

--with-http_ssl_module \

--with-pcre=/usr/local/pcre-8.21 \

--with-http-stub-status-module

编译参数说明:

  • --prefix=path

    Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。

  • --sbin-path=path

    Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx。

  • --conf-path=path

    在没有给定-c选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf。

  • --pid-path=path

    指定nginx.pid的文件名,安装后该名字可以在nginx.cong文件中修改。如果没有指定,默认为 <prefix>/logs/nginx.pid。

  • --error-log-path=path

    在nginx.conf中没有指定error_log指令的情况下,默认的错误日志的路径。如果没有指定,默认为 <prefix>/logs/error.log。

  • --user=name

    在nginx.conf中没有指定user指令的情况下,默认的nginx使用的用户。如果没有指定,默认为 nobody。

  • --group=name

    在nginx.conf中没有指定user指令的情况下,默认的nginx使用的组。如果没有指定,默认为 nobody。

  • --with-http_ssl_module

    开启HTTP SSL模块,使NGINX可以支持HTTPS请求。这个模块需要已经安装了OPENSSL

  • --with-pcre=path

    指定PCRE库路径。(PCRE为正则表达式库)

  • --with-pcre-jit — builds the PCRE library with “just-in-time compilation” support. }



4、在防火墙里面开通80端口,重启防火墙

5、启动:

 /usr/local/nginx-1.4.2/sbin/nginx -c /usr/local/nginx-1.4.2/conf/nginx.conf

或 #cd /usr/local/nginx-1.4.2/sbin

  #./nginx


6、停止:

 

#查询nginx主进程号
ps -ef | grep nginx
#停止进程
kill -QUIT 主进程号
#快速停止
kill -TERM 主进程号
#强制停止
kill -9 nginx


7、重启

 # /usr/local/nginx/sbin/nginx -s reload


8、测试

http://ip:80


9、如果弄文件下载,nginx默认是没有开通子目录浏览的,需要在nginx.conf的最后面加上以下autoindex参数,然后重启nginx

 

location / {

           root   html;

           index  index.html index.htm;

           autoindex on;

           autoindex_exact_size off;

           autoindex_localtime on;

       }