nginx 安装、配置、负载均衡、反向代理<一>

nginx 安装

本文主讲nginx的安装
nginx的负载均衡,反向代理,gzip压缩配置等,详见:nginx 安装、配置、负载均衡、反向代理<二>

准备工作: 一台能联公网的CentOS 7.x服务器

    # root 登录(因为要使用80端口,一般情况下需要root权限)
    cd ~

    # 新建nginx用户和nginx组
    groupadd -r nginx && useradd -r -g nginx -s /bin/false -M nginx

    # yum安装nginx必须的依赖库(已安装的会自动监测是否为最新并升级到最新版本)
    yum -y install openssl openssl-devel libxml2-devel libxslt-devel perl-devel perl-ExtUtils-Embed

    # 官网下载Nginx1.9.0的tar包,然后解压到服务器上
    wget -c http://nginx.org/download/nginx-1.9.0.tar.gz
    tar -zxf nginx-1.9.0.tar.gz && cd nginx-1.9.0

    # 下载pcre的tar包并解压,以便支持Nginx的Rewrite功能
    wget -c https://o3cex9zsl.qnssl.com/libs/nginx/pcre-8.36.tar.gz && tar -zxf pcre-8.36.tar.gz

    # 下载zlib的tar包并解压,以便支持Nginx的Gzip压缩功能
    wget -c https://o3cex9zsl.qnssl.com/libs/nginx/zlib-1.2.8.tar.gz && tar -zxf zlib-1.2.8.tar.gz

    # 新建Nginx1.9.0安装时所需要的目录
    cd /var/tmp/ && mkdir -p /var/tmp/nginx/{client,proxy,fastcgi,uwsgi,scgi}
    mkdir -p /var/run/nginx && cd ~/nginx-1.9.0

    # 至此,准备工作基本完成

配置安装参数

    # 执行 ./configure 命令安装,下面是完整的路径配置和安装,__注意不能有换行__,具体配置含义见文末
    ./configure --prefix=/usr/share/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/nginx.pid --lock-path=/var/lock/nginx.lock --user=nginx --group=nginx --with-http_ssl_module --with-http_spdy_module --with-http_dav_module --with-http_flv_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module --with-http_stub_status_module --with-http_sub_module --with-http_random_index_module --with-http_degradation_module --with-http_secure_link_module --with-http_gzip_static_module --with-http_perl_module --with-pcre=pcre-8.36 --with-zlib=zlib-1.2.8 --with-debug --with-file-aio --with-mail --with-mail_ssl_module --http-client-body-temp-path=/var/tmp/nginx/client_body --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-stream --with-ld-opt="-Wl,-E"

编译和安装

    # 执行make编译,make install 安装(可能需要时间稍微长点儿,几分钟到十几分钟,请耐心等待)
    make && make install

    # 测试安装是否成功,能显示版本号就说明没问题
    nginx -v

配置nginx的操作命令和开机自动重启

    # 进入root目录
    cd ~

    # 编辑nginx文件
    vi nginx

    # 文件内容如下,粘贴时注意核对下有没有漏掉,然后保存退出
    # 添加到systemctl初始化目录中
    mv ~/nginx /etc/init.d/nginx && chmod +x /etc/init.d/nginx

    # 删除不必要的文件夹
    rm -rf nginx-1.9.0*

    # 添加开机启动
    chkconfig --add nginx
    chkconfig nginx on

nginx命令配置文件的内容

    #! /bin/bash
    #
    # 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
    # pidfile:     /var/run/nginx/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/nginx.lock

    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        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 版本
    nginx -v

    # 启动Nginx服务
    systemctl start nginx

    # 停止nginx服务
    systemctl stop nginx

    # 重启Nginx服务
    systemctl restart nginx

    # 服务的状态(可以查看当前nginx服务是否正常,以及报错原因)
    systemctl status nginx

    # 检查nginx.conf配置的合法性(一般用于编辑完nginx.conf文件后,看看编辑是否有问题)
    nginx -t

以上,安装工作完成 =================================================

附:nginx的安装参数详述

配置项说明
./configure
–prefix=/usr/share/nginxNginx安装目录
–sbin-path=/usr/sbin/nginxNginx的sbin目录
–conf-path=/etc/nginx/nginx.confNginx的配置文件
–error-log-path=/var/log/nginx/error.logNginx的错误日志
–http-log-path=/var/log/nginx/access.logNginx的访问日志
–pid-path=/var/run/nginx/nginx.pidNginx的进程ID
–lock-path=/var/lock/nginx.lock
–user=nginxNginx所属用户
–group=nginxNginx所属用户组
–with-http_ssl_moduleNginx的ssl模块
–with-http_spdy_module[Nginx的Google spdy模块
–with-http_dav_module
–with-http_flv_module
–with-http_realip_module
–with-http_addition_module
–with-http_xslt_module
–with-http_stub_status_module
–with-http_sub_module
–with-http_random_index_module
–with-http_degradation_module
–with-http_secure_link_module
–with-http_gzip_static_moduleNginx的gzip压缩模块
–with-http_perl_module
–with-pcre=pcre-8.36pcre的安装目录
–with-zlib=zlib-1.2.8pcre的安装目录
–with-debug允许DEBUG
–with-file-aio
–with-mail
–with-mail_ssl_module
–http-client-body-temp-path=/var/tmp/nginx/client_body
–http-proxy-temp-path=/var/tmp/nginx/proxy
–http-fastcgi-temp-path=/var/tmp/nginx/fastcgi
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
–http-scgi-temp-path=/var/tmp/nginx/scgi
–with-streamNginx1.9.0特有的stream模块
–with-ld-opt=”-Wl,-E”gcc的编译优化

+ 参考资料:blog地址https://typecodes.com/web/centos7compilenginx.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值