Linux编译安装Nginx1.16.1稳定版

2022-07-25 15:46:50 浏览数 (1)

# Linux编译安装Nginx1.16.1稳定版

前置条件

本文采用centOS 7.8.2003 版本

通过编译的方式安装

如何安装Nginx 1.16.1稳定版

# 一、安装依赖及环境

注意

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

挑选一个方式安装即可

# 快捷安装

代码语言:javascript复制
yum install gcc gcc-c   pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

# 分步骤安装

  1. 安装gcc环境
代码语言:javascript复制
yum install gcc gcc-c  
  1. 安装PCRE库,用于解析正则表达式
代码语言:javascript复制
yum install -y pcre pcre-devel
  1. zlib压缩和解压缩依赖
代码语言:javascript复制
yum install -y zlib zlib-devel
  1. SSL 安全的加密的套接字协议层,用于HTTP安全传输,也就是https
代码语言:javascript复制
yum install -y openssl openssl-devel

# 二、下载Nginx源码

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

代码语言:javascript复制
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: 未找到命令

则需要执行下面的命令后

代码语言:javascript复制
yum install wget

重新通过 wget 下载,解压

# 三、编译源代码

  1. 进入解压好的文件夹
代码语言:javascript复制
cd /usr/local/src/nginx-1.16.1
  1. 编译源码
  • 可执行版:
代码语言:javascript复制
./configure 
--prefix=/usr/local/nginx 
--with-http_stub_status_module 
--with-http_ssl_module 
--with-stream
  • 注释版:
代码语言:javascript复制
./configure 
--prefix=/usr/local/nginx  # 指定编译文件夹
--with-http_stub_status_module  # nginx监控模块
--with-http_ssl_module  # nginx ssl模块,可配置证书等
--with-stream # nginx stream模块,配置stream,upstream反向代理必须的模块
  • 执行结果:

注意

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

  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已经安装了的话用指令
代码语言:javascript复制
make
  • 如果没有安装或者已卸载的话
代码语言:javascript复制
make && make install

# 五、查看nginx的版本信息

  • 查看编译后的nginx版本
代码语言:javascript复制
/usr/local/src/nginx-1.16.1/objs/nginx -V
  • 查看安装后的nginx版本
代码语言:javascript复制
/usr/local/nginx/sbin/nginx -V

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

  • 复制新版nginx到安装路径处
代码语言:javascript复制
cp objs/nginx /usr/local/nginx/sbin/
  • 复制bin文件后再核对下版本
代码语言:javascript复制
/usr/local/nginx/sbin/nginx -V

# 七、配置开机自启动

代码语言:javascript复制
vim /lib/systemd/system/nginx.service
  • 复制以下内容保存(按ESC后:wq保存退出)
代码语言:javascript复制
[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
  • 设置开机自启动
代码语言:javascript复制
systemctl enable nginx
  • 启动nginx
代码语言:javascript复制
systemctl start nginx
  • 通过浏览器访问 http://ip:{ip}:ip:{端口号},例如我的是 http://192.168.4.125/,默认80端口可以不加端口号
  • 启动、查看状态、重启nginx,指令3件套
代码语言:javascript复制
systemctl start nginx
systemctl status nginx
systemctl restart nginx

# 八、配置nginx环境变量

  • 一般修改配置后用 nginx -s reload 重启
代码语言:javascript复制
nginx -s reload
  • 出现以下提示是没有配置环境变量
  • 打开/etc/profile
代码语言:javascript复制
vim /etc/profile
  • 在最后一行 追加下面2行配置(ESC :wq 保存退出)
代码语言:javascript复制
PATH=$PATH:/usr/local/nginx/sbin
export PATH

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

代码语言:javascript复制
source /etc/profile

# 参考文章

CentOS安装nginx-1.16.1

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

0 人点赞