nginx 编译安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx 编译安装相关的知识,希望对你有一定的参考价值。

环境
gcc-c++  pcre  pcre-devel  zlib  zlib-devel  openssl openssl-devel
  • gcc-c++ 编译依赖gcc环境
  • openssl openssl-devel SSL协议
  • zlib zlib-devel zlib库提供了很多种压缩和解压缩的方式
  • pcre pcre-devel 包括 perl 兼容的正则表达式库

下载nginx,解压

wget http://nginx.org/download/nginx-1.14.0.tar.gz
tar -xvf nginx-1.14.0.tar.gz
cd nginx-1.14.0

组和用户 #看需求设置

# 添加Nginx组
groupadd nginx    

# 添加Nginx用户
useradd nginx -g nginx -s /sbin/nologin -M

配置

./configure --user=nginx \    # 设置用户名
--group=nginx \   # 设置用户组
--prefix=/usr/local/nginx \  # 设置安装位置
--pid-path=/var/run/nginx/nginx.pid \ #进程文件
--lock-path=/var/lock/nginx.lock \  #锁
--error-log-path=/var/log/nginx/error.log \    #日志
--http-log-path=/var/log/nginx/access.log \  #日志
--with-http_stub_status_module \  # 用来监控 Nginx 的当前状态
--with-http_ssl_module \ # 打开HTTPS功能
--with-http_realip_module \  # 允许改变客户端请求头中X-Real-IP 或 X-Forwarded-For等, 可用于记录客户IP
--with-http_gzip_static_module \ #预压缩文件传前检查,防止文件被重复压缩
--http-client-body-temp-path=/var/temp/nginx/client \ # #客户端请求临时文件路径
--http-proxy-temp-path=/var/temp/nginx/proxy \ #设置http proxy临时文件路径
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \ #设置http fastcgi临时文件路径
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \ #设置uwsgi 临时文件路径
--http-scgi-temp-path=/var/temp/nginx/scgi  #设置scgi 临时文件路径

编译安装

make &&  make install 

启动Nginx

#切换到安装位置,也就是之前配置configure的
cd /usr/local/nginx/sbin/

#启动
#注:nginx.conf 是 nginx 的默认配置文件。也可以使用 nginx -c 指定配置文件启动
./nginx

#启动失败
按照提示创建对应client目录
mkdir -r  /var/temp/nginx/client  # 自己创建的 ,对应目录

#启动成功查看nginx进程(master进程和worker进程)
ps -ef | grep nginx

Nginx 停止与重启

停止nginx

    方式1,快速停止:
    cd /usr/local/nginx/sbin
    ./nginx -s stop
    此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

    方式2,完整停止(建议使用):
    cd /usr/local/nginx/sbin
    ./nginx -s quit
    此方式停止步骤是待nginx进程处理任务完毕进行停止。

重启nginx

        方式1,先停止再启动(建议使用):
        对nginx进行重启相当于先停止nginx再启动nginx,即先执行停止命令再执行启动命令。
        如下:
        ./nginx -s quit
        ./nginx

        方式2,重新加载配置文件:
        ./nginx  -s reload
        当nginx的配置文件nginx.conf修改后,要想让配置生效需要重启nginx,使用-s reload不用先停止nginx再启动nginx即可将配置            信息在

设置开机启动和制作启停工具

将下面的文件, 写到/etc/init.d/nginx

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
#
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it‘s not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx/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: "
 $nginxd -s reload
    #if your nginx version is below 0.8, please use this command: "kill -HUP `cat ${nginx_pid}`"
    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 755 /etc/init.d/nginx

添加开机启动

chkconfig --level 345 nginx on

以上是关于nginx 编译安装的主要内容,如果未能解决你的问题,请参考以下文章

源码编译三部曲(以nginx示例)

源码编译三部曲(以nginx示例)

Nginx编译安装

云计算days7----编译安装nginx

安装nginx的时候,是怎么编译老出错啊

从nginx的编译安装,了解编译安装原理(转)