NGINX的基本编译安装部署

  • yum自动安装,不支持自由扩展第三方功能
  • 源码编译安装,可以指定安装路径,并支持自由安装模块

安装前准备

  1. 安装GCC编译环境
[root@localhost ~]# yum install -y gcc gcc-c++ autoconf automake make
  1. 安装模块依赖

Nginx支持的功能模块需要有第三方的库支持,例如gzip的zlib库,rewrite重写需要的pcre库,HTTPS需要的openssl库等等。

[root@localhost ~]# yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel wget httpd-tools vim -y

如果出现报错

错误: Multilib version problems found. This often means that the root
      cause is something else and multilib version checking is just
      pointing out that there is a problem. Eg.:
      
        1. You have an upgrade for zlib which is missing some
           dependency that another package requires. Yum is trying to
           solve this by installing an older version of zlib of the
           different architecture. If you exclude the bad architecture
           yum will tell you what the root cause is (which package
           requires what). You can try redoing the upgrade with
           --exclude zlib.otherarch ... this should give you an error
           message showing the root cause of the problem.
      
        2. You have multiple architectures of zlib installed, but
           yum can only see an upgrade for one of those architectures.
           If you don't want/need both architectures anymore then you
           can remove the one with the missing update and everything
           will work.
      
        3. You have duplicate versions of zlib installed already.
           You can use "yum check" to get yum show these errors.
      
      ...you can also use --setopt=protected_multilib=false to remove
      this checking, however this is almost never the correct thing to
      do as something else is very likely to go wrong (often causing
      much more problems).
      
      保护多库版本:zlib-1.2.7-20.el7_9.x86_64 != zlib-1.2.7-19.el7_9.i686

可以在后面添加命令 –setopt=protected_multilib=false

[root@localhost nginx-1.22.0]# yum install zlib zlib-devel Openssl openssl-devel pcre pcre-devel wget httpd-tools vim -y  --setopt=protected_multilib=false
  1. 安装系统基础开发环境
[root@localhost ~]# yum groupinstall "Development Tools" "Basic Web Server"
  1. 创建管理用户
[root@localhost ~]# useradd -s /sbin/nologin nginx

下载安装包

  1. 创建nginx文件夹,存储下载文件
[root@localhost ~]# mkdir nginx
[root@localhost ~]# ls
anaconda-ks.cfg  nginx  perl5
  1. nginx官网下载安装包,本教程的安装包为nginx1.22
[root@localhost nginx]# wget http://nginx.org/download/nginx-1.22.0.tar.gz
--2022-06-17 21:45:11--  http://nginx.org/download/nginx-1.22.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 52.58.199.22, 3.125.197.172, 2a05:d014:edb:5702::6, ...
正在连接 nginx.org (nginx.org)|52.58.199.22|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1073322 (1.0M) [application/octet-stream]
正在保存至: “nginx-1.22.0.tar.gz”

100%[==================================================>] 1,073,322    823KB/s 用时 1.3s   

2022-06-17 21:45:13 (823 KB/s) - 已保存 “nginx-1.22.0.tar.gz” [1073322/1073322])

[root@localhost nginx]# ls
nginx-1.22.0.tar.gz
  1. 使用tar命令,解压到当前文件夹
[root@localhost nginx]# tar -zxf nginx-1.22.0.tar.gz 
[root@localhost nginx]# ll
总用量 1056
drwxr-xr-x. 8 1001 1001    4096 5月  24 07:59 nginx-1.22.0
-rw-r--r--. 1 root root 1073322 5月  24 22:29 nginx-1.22.0.tar.gz
  1. 让vim系统识别Nginx语法
[root@localhost nginx]# cd nginx-1.22.0/
[root@localhost nginx-1.22.0]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
[root@localhost nginx-1.22.0]# mkdir ~/.vim
[root@localhost nginx-1.22.0]# cp -r contrib/vim/* ~/.vim/

编译安装三部曲

  1. 编译Nginx,扩展编译模块
[root@localhost nginx-1.22.0]# ./configure --help  # 列出Nginx的编译选项,如制定安装路径,配置文件、日志文件等路径,指定开启模块功能等

[root@localhost nginx-1.22.0]# ./configure --prefix=/opt/Nginx1.22/ --with-http_ssl_module  --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module  --with-threads  --with-file-aio
  1. 执行make,进行编译
[root@localhost nginx-1.22.0]# make
  1. make install 进行安装
[root@localhost nginx-1.22.0]# make install

配置Nginx环境变量

  1. 检查Prefix指定的安装目录
[root@localhost /]# ll opt
总用量 0
drwxr-xr-x. 2 root root 18 6月  15 18:16 linux_ic
drwxr-xr-x. 6 root root 50 6月  17 22:36 Nginx1.22
drwxr-xr-x. 2 root root  6 10月 31 2018 rh
  1. Nginx的程序目录
[root@localhost /]# cd /opt/Nginx1.22/
[root@localhost Nginx1.22]# pwd
/opt/Nginx1.22
[root@localhost Nginx1.22]# ls
conf  html  logs  sbin
  • conf:配置文件目录
  • html:静态文件
  • logs:日志文件目录
  • sbin:二进制命令文件
  1. 创建系统服务
[root@localhost ~]# echo  export PATH=/opt/Nginx1.22/sbin:$PATH >  /etc/profile.d/nginx.sh
  1. 重新登录终端,查看环境变量
[root@localhost ~]# echo $PATH
/root/perl5/bin:/opt/Nginx1.22/sbin:/root/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
  1. 检查nginx版本和安装模块
[root@localhost ~]# nginx -V
nginx version: nginx/1.22.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/opt/Nginx1.22/ --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module --with-http_stub_status_module --with-threads --with-file-aio

启动nginx

  1. 使用nginx命令启动
[root@localhost ~]# nginx
[root@localhost ~]# ps -ef | grep nginx
root     44184     1  0 23:09 ?        00:00:00 nginx: master process nginx
nobody   44185 44184  0 23:09 ?        00:00:00 nginx: worker process
root     44430 40561  0 23:09 pts/0    00:00:00 grep --color=auto nginx
[root@localhost ~]# netstat -tunlp |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      44184/nginx: master 
  1. 开放系统80端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success
[root@localhost ~]# firewall-cmd --reload
success

  1. 在浏览器中输入IP地址
NGINX的基本编译安装部署

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/4765

(0)
郭靖的头像郭靖
上一篇 2022年6月17日 下午2:10
下一篇 2022年6月17日 下午11:43

相关推荐

  • DedeCMS系统后台登陆并跳转回登陆界面的解决方法

    问题描述 在登陆界面输入账号密码后会有3-5秒的卡顿才会进入下面的页面,然后再卡顿3-5秒就跳回登陆界面。 解决方法 Windows系统 出现该问题的原因是网站web目录没有写入权限,因此只要将web目录增加写入权限即可 Linux系统 修改DATA和sessions的目录属性为可写,即(777) 清空sessions内除index.html以外的所有文件 …

    2022年8月22日
    40700
  • IIS发布网站时报403错误的所有原因及解决方案

    在使用IIS的时候,如果遇到403相关的错误,我们往往束手无策,不知道是什么权限的原因。现总结如下,供以后参考。 1、403.1 – 执行访问被禁止 没有足够的执行权限,例如你访问的index.php文件,但是该文件并没有执行权限,那么浏览器在访问时就会出现该错误,然后你就需要去修改目录的权限了 2、403.2 – 读访问被禁止验证是…

    2022年6月21日
    1.2K00
  • Linux 宝塔部署 ASP.NET Core 应用

    第一步,发步应用 我这是一个API 应用和 MVC 应用 设置,服务器上要运行的端口 API 端口5000 MVC 端口5001 打包文件夹,发步 1、桌面新建俩个文件夹 2、右键项目发步,选中iis 目标位置选择刚刚桌面上创建的API文件夹 MVC 同理,这里不做演示 第二步、安装LInux ASP.NET Core 运行时环境 1、连接服务器 2、执行以…

    2023年3月8日
    63600
  • IIS配置Url重写实现http自动跳转https的重定向方法

    需要准备的工具和环境: 操作流程 配置URL分为全局和非全局,下图,可以看到URL重写组件内容。 选择某一个站点中的URL重写,我们称之为单独的非全局。直接选择IIS的可以配置全局,所以这里要依靠你自己的判断和选择。 打开Url重写工具 在右侧点击添加,然后选择空白规则,然后进行规则的配置。 规则命令如下 这个也是网上一大堆教程最神的地方,很多东西都是缺失的…

    2023年2月21日
    49000
  • Centos 7.9 宝塔面板下安装开源IDC机房资产管理系统-Racktables

    第一步:准备宝塔环境 根据racktables官方文档,选择合适版本,搭建环境。 第二步:安装racktables 1 官网下载(https://www.racktables.org/)racktables安装包,并上传到宝塔。 2 解压安装包,设置网站,创建数据库 3 浏览器完成安装 Please set ownership (chown) and/or …

    2022年12月22日
    36100

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

评论列表(1条)

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信
NGINX的基本编译安装部署