首页 > 代码库 > Centos6.5编译安装Nginx-1.6.2和简单配置

Centos6.5编译安装Nginx-1.6.2和简单配置

Nginx官方站点 http://nginx.org/cn/

tengine 淘宝基于nginx二次开发 http://tengine.taobao.org/

nginx已经附带memcache模块,可以管理缓存,而且支持平滑升级......

系统Centos6.5_64位 rpm包和源码包    我这是源码包

wget  http://nginx.org/download/nginx-1.6.2.tar.gz   稳定版

注意源码编译前请确定你的开发包组是否安装  开发工具 

yum groupinstall "开发工具"  
rpm -q pcre-devel  没装
yum install pcre-devel -y  依赖perl扩展的正则表达式
yum groupinfo "开发工具" 可以看到这个开发工具中的包组内容
groupadd -r -g 110 nginx   添加以个nginx组为系统组
useradd -r -u 110 -g 110 nginx  添加以个用户为系统用户  专门管理nginx
解压安装
[root@tomcat2 ~]# tar xf nginx-1.6.2.tar.gz 
[root@tomcat2 ~]# cd nginx-1.6.2
[root@tomcat2 nginx-1.6.2]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@tomcat2 nginx-1.6.2]# ./configure --help |less
编译
./configure   --prefix=/usr   --sbin-path=/usr/sbin/nginx   --conf-path=/etc/nginx/nginx.conf   --error-log-path=/var/log/nginx/error.log   --http-log-path=/var/log/nginx/access.log   --pid-path=/var/run/nginx/nginx.pid    --lock-path=/var/lock/nginx.lock   --user=nginx   --group=nginx   --with-http_ssl_module   --with-http_flv_module   --with-http_stub_status_module   --with-http_gzip_static_module   --http-client-body-temp-path=/var/tmp/nginx/client/   --http-proxy-temp-path=/var/tmp/nginx/proxy/   --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/   --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi   --http-scgi-temp-path=/var/tmp/nginx/scgi   --with-pcre   --with-file-aio \ 
  --with-http_image_filter_module 
报错如下
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl=<path> option.
少ssl模块编译少的全是devel包
所以安装
yum install openssl-devel  gd-devel gd库是图片过滤处理模块
没报错
make && make instal
提供启动脚本 脚本来自 http://wiki.nginx.org/RedHatNginxInitScript

vim /etc/init.d/nginx

#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15 
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse #               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
 
# Source function library.
. /etc/rc.d/init.d/functions
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
 
nginx="/usr/sbin/nginx"
prog=$(basename $nginx)
 
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
 
lockfile=/var/lock/subsys/nginx
 
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed ‘s/[^*]*--user=\([^ ]*\).*/\1/g‘ -`
   options=`$nginx -V 2>&1 | grep ‘configure arguments:‘`
   for opt in $options; do
       if [ `echo $opt | grep ‘.*-temp-path‘` ]; then
           value=http://www.mamicode.com/`echo $opt | cut -d "=" -f 2`> 并设定开机自动启动 
chmod +x /etc/init.d/nginx 
chkconfig --add nginx
[root@tomcat2 nginx-1.6.2]# /etc/init.d/nginx start
正在启动 nginx:                                           [确定]
[root@tomcat2 nginx-1.6.2]# netstat -antlp |grep nginx
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      9570/nginx
一个简单nginx就搭建好了测试:

localtion段官方文档http://nginx.org/en/docs/http/ngx_http_core_module.html#location

localtion URI [ = | ~|~*|^~|] uri {...}

localtion URI {} 对当前路径下的所有对象都生效

localtion = URI {} 精确匹配当前的路径,不包括子路径,因此,只对当前资源生效

localtion ~ URI {}   模式匹配URI,此处的URI可使用正则表达式, ~区分大小写,~*不区分大小写

localtion ^~ URI {} 不使用正则表达式

localtion ACL 控制 官方文档http://nginx.org/en/docs/http/ngx_http_access_module.html

官方示例
location / {
    deny  192.168.1.1;
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}

基于用户名密码认证帮助文档http://nginx.org/en/docs/http/ngx_http_auth_basic_module.html

创建用户名密码需要依赖apache的htpasswd命令  所以安装httpd 不要让其开机自动启动

[root@tomcat2 nginx]# htpasswd -c -m /etc/nginx/.user tom
New password: 
Re-type new password: 
Adding password for user tom
[root@tomcat2 nginx]# htpasswd  -m /etc/nginx/.user leo
New password: 
Re-type new password: 
Updating password for user leo
第2次不要加-c 不然重建.user
修改配置文件
 location / {
            root   html;
            index  index.html index.htm;
            auth_basic "ACL...";
            auth_basic_user_file /etc/nginx/.user;
        }
保存重启
测试



Centos6.5编译安装Nginx-1.6.2和简单配置