Nginx安装配置

方式①(nginx用户)

1:下载nginx-1.8.1.tar.gz并上传到服务器中并解压linux

2:执行设置编译安装环境nginx

      yum -y groupinstall "Development Tools" "Server Platform Development" web

3:安装pcre-devel正则表达式

      yum -y install pcre-devel openssl openssl-devel算法

4:建立nginx用户组vim

      useradd -r nginx浏览器

5:执行nginx启动配置缓存

./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx.conf --user=nginx --group=nginx --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 --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-debug安全

      (参数可参考nginx编译参数)服务器

      以下图所示标识启动配置成功

     

6:安装

      make && make install

7:配置nginx环境变量

      vi /etc/porfile

      export PATH=/usr/local/nginx/sbin:$PATH

      从新加载配置文件source /etc/profile

 

方式②(root用户)

1:下载nginx-1.8.1.tar.gz并上传到服务器中并解压

2:安装pcre-devel和openssl-devel

      yum -y install pcre-devel

      yum -y install openssl-devel

3:执行nginx启动配置

./configure --prefix=/usr/local/nginx --with-http_mp4_module --with-http_flv_module --with-http_realip_module --with-http_ssl_module

      (参数可参考nginx编译参数)

      以下图所示标识启动配置成功

     

4:安装

      make && make install

5:配置nginx环境变量

      vi /etc/porfile

      export PATH=/usr/local/nginx/sbin:$PATH

      从新加载配置文件source /etc/profile

 

启动、中止、重启

      /usr/local/nginx/sbin/nginx

      /usr/local/nginx/sbin/nginx -s stop

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

开机自启动

一、在linux系统的/etc/init.d/目录下建立nginx文件,使用以下命令:

      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/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/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' -`

   if [ -z "`grep $user /etc/passwd`" ]; then

       useradd -M -s /bin/nologin $user

   fi

   options=`$nginx -V 2>&1 | grep 'configure arguments:'`

   for opt in $options; do

       if [ `echo $opt | grep '.*-temp-path'` ]; then

           value=`echo $opt | cut -d "=" -f 2`

           if [ ! -d "$value" ]; then

               # echo "creating" $value

               mkdir -p $value && chown -R $user $value

           fi

       fi

   done

}

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    make_dirs

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}

stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}

restart() {

    configtest || return $?

    stop

    sleep 1

    start

}

reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}

configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}

rh_status() {

    status $prog

}

rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        rh_status_q && exit 0

        $1

        ;;

    stop)

        rh_status_q || exit 0

        $1

        ;;

    restart|configtest)

        $1

        ;;

    reload)

        rh_status_q || exit 7

        $1

        ;;

    force-reload)

        force_reload

        ;;

    status)

        rh_status

        ;;

    condrestart|try-restart)

        rh_status_q || exit 0

            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"

        exit 2

esac

 

这个脚本其实也不是我写的,谁写的呢,nginx官方写的,脚本地址:http://wiki.nginx.org/RedHatNginxInitScript ,不过要注意,若是你是自定义编译安装的nginx,须要根据您的安装路径修改下面这两项配置:

nginx=”/usr/local/nginx/sbin/nginx” 修改为nginx执行程序的路径。

NGINX_CONF_FILE=”/usr/local/nginx/conf/nginx.conf” 修改为配置文件的路径。

二、保存脚本文件后设置文件的执行权限

      chmod a+x /etc/init.d/nginx

三、设置终端模式开机启动:

      chkconfig nginx on

 

错误信息:

nginx: [emerg] unexpected end of file, expecting ";" or "}" in /etc/mime.types:1299

解决方法:

  Debian7系统自带的/etc/mime.types替换为Nginx的conf目录下的mime.types便可

 

Nginx编译参数(./configure)


./configure --help
–prefix= 指向安装目录

–sbin-path 指向(执行)程序文件(nginx)

–conf-path= 指向配置文件(nginx.conf)

–error-log-path= 指向错误日志目录

–pid-path= 指向pid文件(nginx.pid)

–lock-path= 指向lock文件(nginx.lock)(安装文件锁定,防止安装文件被别人利用,或本身误操做。)

–user= 指定程序运行时的非特权用户

–group= 指定程序运行时的非特权用户组

–builddir= 指向编译目录

–with-rtsig_module 启用rtsig模块支持(实时信号)

–with-select_module 启用select模块支持(一种轮询模式,不推荐在高载环境下使用)禁用:–without-select_module

–with-poll_module 启用poll模块支持(功能与select相同,与select特性相同,为一种轮询模式,不推荐在高载环境下使用)

–with-file-aio 启用file aio支持(一种APL文件传输格式)

–with-ipv6 启用ipv6支持

–with-http_ssl_module 启用ngx_http_ssl_module支持(使支持https请求,需已安装openssl)

–with-http_realip_module 启用ngx_http_realip_module支持(这个模块容许从请求标头更改客户端的IP地址值,默认为关)

–with-http_addition_module 启用ngx_http_addition_module支持(做为一个输出过滤器,支持不彻底缓冲,分部分响应请求)

–with-http_xslt_module 启用ngx_http_xslt_module支持(过滤转换XML请求)

–with-http_image_filter_module 启用ngx_http_image_filter_module支持(传输JPEG/GIF/PNG 图片的一个过滤器)(默认为不启用。gd库要用到)

–with-http_geoip_module 启用ngx_http_geoip_module支持(该模块建立基于与MaxMind GeoIP二进制文件相配的客户端IP地址的ngx_http_geoip_module变量)

–with-http_sub_module 启用ngx_http_sub_module支持(容许用一些其余文本替换nginx响应中的一些文本)

–with-http_dav_module 启用ngx_http_dav_module支持(增长PUT,DELETE,MKCOL:建立集合,COPY和MOVE方法)默认状况下为关闭,需编译开启

–with-http_flv_module 启用ngx_http_flv_module支持(提供寻求内存使用基于时间的偏移量文件)

–with-http_gzip_static_module 启用ngx_http_gzip_static_module支持(在线实时压缩输出数据流)

–with-http_random_index_module 启用ngx_http_random_index_module支持(从目录中随机挑选一个目录索引)

–with-http_secure_link_module 启用ngx_http_secure_link_module支持(计算和检查要求所需的安全连接网址)

–with-http_degradation_module  启用ngx_http_degradation_module支持(容许在内存不足的状况下返回204或444码)

–with-http_stub_status_module 启用ngx_http_stub_status_module支持(获取nginx自上次启动以来的工做状态)

–without-http_charset_module 禁用ngx_http_charset_module支持(从新编码web页面,但只能是一个方向–服务器端到客户端,而且只有一个字节的编码能够被从新编码)

–without-http_gzip_module 禁用ngx_http_gzip_module支持(该模块同-with-http_gzip_static_module功能同样)

–without-http_ssi_module 禁用ngx_http_ssi_module支持(该模块提供了一个在输入端处理处理服务器包含文件(SSI)的过滤器,目前支持SSI命令的列表是不完整的)

–without-http_userid_module 禁用ngx_http_userid_module支持(该模块用来处理用来肯定客户端后续请求的cookies)

–without-http_access_module 禁用ngx_http_access_module支持(该模块提供了一个简单的基于主机的访问控制。容许/拒绝基于ip地址)

–without-http_auth_basic_module禁用ngx_http_auth_basic_module(该模块是可使用用户名和密码基于http基本认证方法来保护你的站点或其部份内容)

–without-http_autoindex_module 禁用disable ngx_http_autoindex_module支持(该模块用于自动生成目录列表,只在ngx_http_index_module模块未找到索引文件时发出请求。)

–without-http_geo_module 禁用ngx_http_geo_module支持(建立一些变量,其值依赖于客户端的IP地址)

–without-http_map_module 禁用ngx_http_map_module支持(使用任意的键/值对设置配置变量)

–without-http_split_clients_module 禁用ngx_http_split_clients_module支持(该模块用来基于某些条件划分用户。条件如:ip地址、报头、cookies等等)

–without-http_referer_module 禁用disable ngx_http_referer_module支持(该模块用来过滤请求,拒绝报头中Referer值不正确的请求)

–without-http_rewrite_module 禁用ngx_http_rewrite_module支持(该模块容许使用正则表达式改变URI,而且根据变量来转向以及选择配置。若是在server级 别设置该选项,那么他们将在 location以前生效。若是在location还有更进一步的重写规则,location部分的规则依然会被执行。若是这个URI重写是由于 location部分的规则形成的,那么 location部分会再次被执行做为新的URI。 这个循环会执行10次,而后Nginx会返回一个500错误。)

–without-http_proxy_module 禁用ngx_http_proxy_module支持(有关代理服务器)

–without-http_fastcgi_module 禁用ngx_http_fastcgi_module支持(该模块容许Nginx 与FastCGI 进程交互,并经过传递参数来控制FastCGI 进程工做。 )FastCGI一个常驻型的公共网关接口。

–without-http_uwsgi_module 禁用ngx_http_uwsgi_module支持(该模块用来医用uwsgi协议,uWSGI服务器相关)

–without-http_scgi_module 禁用ngx_http_scgi_module支持(该模块用来启用SCGI协议支持,SCGI协议是CGI协议的替代。它是一种应用程序与HTTP服务接口标准。它有些像FastCGI但他的设计 更容易实现。)

–without-http_memcached_module 禁用ngx_http_memcached_module支持(该模块用来提供简单的缓存,以提升系统效率)

-without-http_limit_zone_module 禁用ngx_http_limit_zone_module支持(该模块能够针对条件,进行会话的并发链接数控制)

–without-http_limit_req_module 禁用ngx_http_limit_req_module支持(该模块容许你对于一个地址进行请求数量的限制用一个给定的session或一个特定的事件)

–without-http_empty_gif_module 禁用ngx_http_empty_gif_module支持(该模块在内存中常驻了一个1*1的透明GIF图像,能够被很是快速的调用)

–without-http_browser_module 禁用ngx_http_browser_module支持(该模块用来建立依赖于请求报头的值。若是浏览器为modern ,则$modern_browser等于modern_browser_value指令分配的值;如 果浏览器为old,则$ancient_browser等于 ancient_browser_value指令分配的值;若是浏览器为 MSIE中的任意版本,则 $msie等于1)

–without-http_upstream_ip_hash_module 禁用ngx_http_upstream_ip_hash_module支持(该模块用于简单的负载均衡)

–with-http_perl_module 启用ngx_http_perl_module支持(该模块使nginx能够直接使用perl或经过ssi调用perl)

–with-perl_modules_path= 设定perl模块路径

–with-perl= 设定perl库文件路径

–http-log-path= 设定access log路径

–http-client-body-temp-path= 设定http客户端请求临时文件路径

–http-proxy-temp-path= 设定http代理临时文件路径

–http-fastcgi-temp-path= 设定http fastcgi临时文件路径

–http-uwsgi-temp-path= 设定http uwsgi临时文件路径

–http-scgi-temp-path= 设定http scgi临时文件路径

-without-http 禁用http server功能

–without-http-cache 禁用http cache功能

–with-mail 启用POP3/IMAP4/SMTP代理模块支持

–with-mail_ssl_module 启用ngx_mail_ssl_module支持

–without-mail_pop3_module 禁用pop3协议(POP3即邮局协议的第3个版本,它是规定我的计算机如何链接到互联网上的邮件服务器进行收发邮件的协议。是因特网电子邮件的第一个离 线协议标 准,POP3协议容许用户从服务器上把邮件存储到本地主机上,同时根据客户端的操做删除或保存在邮件服务器上的邮件。POP3协议是TCP/IP协议族中 的一员,主要用于 支持使用客户端远程管理在服务器上的电子邮件)

–without-mail_imap_module 禁用imap协议(一种邮件获取协议。它的主要做用是邮件客户端能够经过这种协议从邮件服务器上获取邮件的信息,下载邮件等。IMAP协议运行在 TCP/IP协议之上, 使用的端口是143。它与POP3协议的主要区别是用户能够不用把全部的邮件所有下载,能够经过客户端直接对服务器上的邮件进行操做。)

–without-mail_smtp_module 禁用smtp协议(SMTP即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于 TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。)

–with-google_perftools_module 启用ngx_google_perftools_module支持(调试用,剖析程序性能瓶颈)

–with-cpp_test_module 启用ngx_cpp_test_module支持

–add-module= 启用外部模块支持

–with-cc= 指向C编译器路径

–with-cpp= 指向C预处理路径

–with-cc-opt= 设置C编译器参数(PCRE库,须要指定–with-cc-opt=”-I /usr/local/include”,若是使用select()函数则须要同时增长文件描述符数量,能够经过–with-cc- opt=”-D FD_SETSIZE=2048”指定。)

–with-ld-opt= 设置链接文件参数。(PCRE库,须要指定–with-ld-opt=”-L /usr/local/lib”。)

–with-cpu-opt= 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64

–without-pcre 禁用pcre库

–with-pcre 启用pcre库

–with-pcre= 指向pcre库文件目录

–with-pcre-opt= 在编译时为pcre库设置附加参数

–with-md5= 指向md5库文件目录(消息摘要算法第五版,用以提供消息的完整性保护)

–with-md5-opt= 在编译时为md5库设置附加参数

–with-md5-asm 使用md5汇编源

–with-sha1= 指向sha1库目录(数字签名算法,主要用于数字签名)

–with-sha1-opt= 在编译时为sha1库设置附加参数

–with-sha1-asm 使用sha1汇编源

–with-zlib= 指向zlib库目录

–with-zlib-opt= 在编译时为zlib设置附加参数

–with-zlib-asm= 为指定的CPU使用zlib汇编源进行优化,CPU类型为pentium, pentiumpro

–with-libatomic 为原子内存的更新操做的实现提供一个架构

–with-libatomic= 指向libatomic_ops安装目录

–with-openssl= 指向openssl安装目录

–with-openssl-opt 在编译时为openssl设置附加参数

–with-debug 启用debug日志

nginx编译时不是功能加的越多越好,应该尽量少编译模块,不用的最好不要加入。编译好的nginx可经过 /usr/local/nginx/sbin/nginx -V 查看编译时的参数(具体路径更具实际状况而定)

相关文章
相关标签/搜索