Linux 6下安装编译安装Nginx的步骤

Linux 6下安装编译安装Nginx的步骤

前言:

Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000个并发连接数的响应,而且内存开销极小。这也是Nginx广受欢迎的重要原因。本文演示了基于Linux 6下编译安装Nginx,供大家参考。

一、安装环境

?

# cat /etc/issue

Red Hat Enterprise Linux Server release 6.3 (Santiago)

Kernel \r on an \m

# nginx -v

nginx version: nginx/1.8.0

二、配置安装环境

?

###为简化安装及配置,此处关闭了防火墙,生产环境建议开启

# service iptables stop

# chkconfig iptables off

 

# vi /etc/selinux/config

SELINUX=disabled

 

###创建用户及组

#groupadd -r nginx

#useradd -s /sbin/nologin -g nginx -r nginx

 

###安装环境依赖包 http://nginx.org/en/linux_packages.html

# yum install pcre-devel zlib-devel openssl openssl-devel gcc gcc-c++

三、编译及安装Nginx

?

# cd /tmp/

# tar -xvf nginx-1.8.0.tar.gz

# cd /nginx-1.8.0

# ./configure           \

--prefix=/etc/nginx                     \

--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.pid                \

--lock-path=/var/run/nginx.lock               \

--http-client-body-temp-path=/var/cache/nginx/client_temp  \

--http-proxy-temp-path=/var/cache/nginx/proxy_temp      \

--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp    \

--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp      \

--http-scgi-temp-path=/var/cache/nginx/scgi_temp       \

--user=nginx                         \

--group=nginx                        \

--with-http_ssl_module                    \

--with-http_realip_module                  \

--with-http_addition_module                 \

--with-http_sub_module                    \

--with-http_dav_module                    \

--with-http_flv_module                    \

--with-http_mp4_module                    \

--with-http_gunzip_module                  \

--with-http_gzip_static_module                \

--with-http_random_index_module               \

--with-http_secure_link_module                \

--with-http_stub_status_module                \

--with-http_auth_request_module               \

--with-mail                         \

--with-mail_ssl_module                    \

--with-file-aio                       \

--with-http_spdy_module                   \

--with-ipv6                        

 

Configuration summary

 + using system PCRE library

 + using system OpenSSL library

 + md5: using OpenSSL library

 + sha1: using OpenSSL library

 + using system zlib library

 

 nginx path prefix: "/etc/nginx"

 nginx binary file: "/usr/sbin/nginx"

 nginx configuration prefix: "/etc/nginx"

 nginx configuration file: "/etc/nginx/nginx.conf"

 nginx pid file: "/var/run/nginx.pid"

 nginx error log file: "/var/log/nginx/error.log"

 nginx http access log file: "/var/log/nginx/access.log"

 nginx http client request body temporary files: "/var/cache/nginx/client_temp"

 nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"

 nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"

 nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"

 nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"

 

###如果apache httpd服务启动,建议先停止或更改端口号

# service httpd stop

# mkdir -p /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp}

# make && make install

 

###启动nginx

# /usr/sbin/nginx -c /etc/nginx/nginx.conf

 

# ps -ef|grep nginx|grep -v grep

root   33412   1 0 10:18 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx   33413 33412 0 10:18 ?    00:00:00 nginx: worker process

 

[root@orasrv1 cache]# netstat -nltp|grep 80

tcp    0   0 0.0.0.0:80         0.0.0.0:*          LISTEN   33412/nginx    

[root@orasrv1 cache]#

四、配置nginx为系统服务

?

vi /etc/init.d/nginx

 

#!/bin/bash

# nginx Startup script for the Nginx HTTP Server

# chkconfig: - 85 15

# description: Nginx is an HTTP(S) server, HTTP(S) reverse \

#        proxy and IMAP/POP3 proxy server

# Author : Leshami

# Blog  : http://blog.csdn.net/leshami     

# processname: nginx

# pidfile: /var/run/nginx.pid

# config: /etc/nginx/nginx.conf

 

#path for nginx binary

nginxd=/usr/sbin/nginx

 

#path for nginx configuration

nginx_config=/etc/nginx/nginx.conf

 

#path for nginx pid

nginx_pid=/var/run/nginx.pid

RETVAL=0

prog="nginx"

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

[ -x $nginxd ] || exit 0

# Start nginx daemons functions.

start() {

if [ -e $nginx_pid ];then

  echo "nginx already running...."

  exit 1

fi

  echo -n $"Starting $prog: "

  daemon $nginxd -c ${nginx_config}

  RETVAL=$?

  echo

  [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx

  return $RETVAL

}

# Stop nginx daemons functions.

stop() {

    echo -n $"Stopping $prog: "

    killproc $nginxd

    RETVAL=$?

    echo

    [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid

}

# reload nginx service functions.

reload() {

  echo -n $"Reloading $prog: "

  #kill -HUP `cat ${nginx_pid}`

  killproc $nginxd -HUP

  RETVAL=$?

  echo

}

# See how we were called.

case "$1" in

start)

    start

    ;;

stop)

    stop

    ;;

reload)

    reload

    ;;

restart)

    stop

    start

    ;;

status)

    status $prog

    RETVAL=$?

    ;;

*)

    echo $"Usage: $prog {start|stop|restart|reload|status|help}"

    exit 1

esac

exit $RETVAL

 

# chmod u+x /etc/init.d/nginx

 

# service nginx start

Starting nginx:                      [ OK ]

 

# ps -ef|grep nginx |grep -v grep

root   33534   1 0 10:33 ?    00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf

nginx   33535 33534 0 10:33 ?    00:00:00 nginx: worker process 

 

# service nginx stop

Stopping nginx:                      [ OK ]

 

# chkconfig --add nginx

# chkconfig nginx on

五、安装过程中的常见故障

?

./configure: error: the HTTP rewrite module requires the PCRE library.

You can either disable the module by using --without-http_rewrite_module

option, or install the PCRE library into the system, or build the PCRE library

statically from the source with nginx by using --with-pcre=<path> option.

 

./configure: error: the HTTP gzip module requires the zlib library.

You can either disable the module by using --without-http_gzip_module

option, or install the zlib library into the system, or build the zlib library

statically from the source with nginx by using --with-zlib=<path> option.

### 以上2个错误,请安装相应的依赖包,见本文第二部分:配置安装环境

 

# /usr/sbin/nginx

nginx: [emerg] getpwnam("nginx") failed

### 需要创建nginx用户组及用户

 

# /usr/sbin/nginx

nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)

### 需要创建对应的目录

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/leshami/article/details/51324959

原创文章,作者:CALEW,如若转载,请注明出处:http://www.wangzhanshi.com/n/9180.html

(0)
CALEW的头像CALEW
上一篇 2025年1月1日 16:39:04
下一篇 2025年1月1日 16:39:06

相关推荐

发表回复

登录后才能评论