51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Linux编译安装Nginx1.16.1稳定版

# Linux编译安装Nginx1.16.1稳定版 {#linux编译安装nginx1-16-1稳定版}

前置条件

本文采用centOS 7.8.2003 版本

通过编译的方式安装

如何安装Nginx 1.16.1稳定版

# 一、安装依赖及环境 {#一、安装依赖及环境}

注意

快捷安装和分步骤安装的目的是一样的

挑选一个方式安装即可

# 快捷安装 {#快捷安装}

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

image-20210113154135828

# 分步骤安装 {#分步骤安装}

  1. 安装gcc环境

    yum install gcc gcc-c++

  2. 安装PCRE库,用于解析正则表达式

    yum install -y pcre pcre-devel

  3. zlib压缩和解压缩依赖

    yum install -y zlib zlib-devel

  4. SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https

    yum install -y openssl openssl-devel

# 二、下载Nginx源码 {#二、下载nginx源码}

切换到/usr/local/src目录下,下载源代码解压

cd /usr/local/src
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz

提示

若提示 -bash: wget: 未找到命令

则需要执行下面的命令后

yum install wget

重新通过 wget 下载,解压

# 三、编译源代码 {#三、编译源代码}

  1. 进入解压好的文件夹

    cd /usr/local/src/nginx-1.16.1

  2. 编译源码

  • 可执行版:

    ./configure
    --prefix=/usr/local/nginx
    --with-http_stub_status_module
    --with-http_ssl_module
    --with-stream

  • 注释版:

    ./configure
    --prefix=/usr/local/nginx \ # 指定编译文件夹 --with-http_stub_status_module \ # nginx监控模块 --with-http_ssl_module \ # nginx ssl模块,可配置证书等 --with-stream # nginx stream模块,配置stream,upstream反向代理必须的模块

  • 执行结果:

image-20210113161344687
注意

编译报错的解决办法,没有报错直接跳过

  1. 报错:./configure: error: the HTTP rewrite module requires the PCRE library. 问题原因:编译安装nginx需要pcre包,未安装的话会报错 解决办法: yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
  2. 报错:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: 问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7 解决办法: vim /usr/bin/yum 修改第一行为:#!/usr/bin/python2.7 vi /usr/libexec/urlgrabber-ext-down 修改第一行为:#!/usr/bin/python2.7
  3. 报错:File "/bin/yum-config-manager", line 135 except yum.Errors.RepoError, e: 问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7 解决办法: vim /bin/yum-config-manager 修改第一行为:#!/usr/bin/python2.7
  4. 报错:./configure: error: SSL modules require the OpenSSL library. 问题原因: 缺少SSL库 解决办法:yum -y install openssl openssl-devel

# 四、安装Nginx {#四、安装nginx}

  • 如果nginx已经安装了的话用指令

    make

  • 如果没有安装或者已卸载的话

    make && make install

# 五、查看nginx的版本信息 {#五、查看nginx的版本信息}

  • 查看编译后的nginx版本

    /usr/local/src/nginx-1.16.1/objs/nginx -V

image-20210113162750948

  • 查看安装后的nginx版本

    /usr/local/nginx/sbin/nginx -V

image-20210113162819411

# 六、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略 {#六、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略}

  • 复制新版nginx到安装路径处

    cp objs/nginx /usr/local/nginx/sbin/

  • 复制bin文件后再核对下版本

    /usr/local/nginx/sbin/nginx -V

# 七、配置开机自启动 {#七、配置开机自启动}

vim /lib/systemd/system/nginx.service
  • 复制以下内容保存(按ESC后:wq保存退出)

    [Unit] Description=nginx service After=network.target

    [Service] Type=forking ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true

    [Install] WantedBy=multi-user.target

  • 设置开机自启动

    systemctl enable nginx

image-20210113163357570

  • 启动nginx

    systemctl start nginx

  • 通过浏览器访问 http:// i p : {ip}: ip:{端口号},例如我的是 http://192.168.4.125/,默认80端口可以不加端口号

    image-20210113164157098

  • 启动、查看状态、重启nginx,指令3件套

    systemctl start nginx systemctl status nginx systemctl restart nginx

# 八、配置nginx环境变量 {#八、配置nginx环境变量}

  • 一般修改配置后用 nginx -s reload 重启

    nginx -s reload

  • 出现以下提示是没有配置环境变量

image-20210113163541860

  • 打开/etc/profile

    vim /etc/profile

  • 在最后一行 追加下面2行配置(ESC :wq 保存退出)

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

使配置生效后,就可以用 nginx -s reload

source /etc/profile

image-20210113164342127

# 参考文章 {#参考文章}

CentOS安装nginx-1.16.1

centos 7 源码方式安装nginx(1.16.1) + ssl + 阿里证书配置

赞(5)
未经允许不得转载:工具盒子 » Linux编译安装Nginx1.16.1稳定版