2023最新!nginx安装配置保姆级教程

这篇文章了参考了这位的教程:https://blog.csdn.net/qq_36838700/article/details/129971765

导航

一、nginx下载

  1. nginx官网:http://nginx.org

    • image-20231121163330969
    • image-20231121164626059
  2. 需要的安装包

    ### 这些安装包是在你离线没有网络的情况下安装的
    pcre-8.37.tar.gz          rewrite正则相关pcre:URL重写软件,实现伪静态\URL跳转等、SEO优化。
    
    openssl-1.0.1t.tar.gz     https加密访问用它
    
    zlib-1.2.8.tar.gz         提供数据压缩用
    
    nginx-1.12.2.tar.gz
    链接:https://pan.baidu.com/s/1QycvWTuVIGXqL7zDakMOJQ?pwd=ky2z 
    提取码:ky2z
    

    二、编译安装nginx

    下面的操作需要在Linux上执行,还没有安装Linux的话,可以参考我的博客安装centos7的教程

    1. 安装pcre

      • 联网下载pcre
        • mkdir -p /opt/tools:创建目录
        • cd /opt/tools:切换到该路径
        • wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
          • 如果没找到wget 命令 则执行 yum install -y wget即可随后重新执行上面的wget命令下载,
        • 下载中image-20231121180236076
      • 解压压缩文件
        • tar -zxvf pcre-8.37.tar.gz
        • cd pcre-8.37
        • ./configure:成一个适合当前系统的 Makefile 文件image-20231121181010258
          • 要是提示缺少C++的支持,可以使用yum -y install gcc-c++来安装C++
        • make:当你已经使用 ./configure 命令生成了 Makefile 文件后,可以使用 make 命令执行编译过程image-20231121181315285
        • make install:当你使用 make 命令成功编译了一个软件包后,可以使用 make install 命令将编译得到的可执行文件、库文件和其他必要的资源文件复制到系统指定的位置,以完成软件的安装过程。
    2. 安装openssl、zlib、gcc依赖

      • yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

      •   configure参数作用
          nginx -V     查看安装的参数及模块
          参数作用:
          --prefix=PATH  路径   如果不指定nginx默认安装位置在 /usr/local
          --user=USER    用户
          --group=GROUP  组
          --with-pcre    伪静态
          --with-http_stub_status_module 状态
          --with-http_ssl_module      加密 443
          
          
          例如
          ./configure  --user=www --group=www --prefix=/application/nginx-1.12.2/ --with-http_stub_status_module  --with-http_ssl_module --with-pcre 
          ### 这不需要执行
        
    3. 安装nginx

      • 联网下载nginx
        • cd /opt/tools
        • wget http://nginx.org/download/nginx-1.12.2.tar.gz
      • 解压文件
        • tar -zxvf nginx-1.12.2.tar.gz
        • cd nginx-1.12.2
        • 和上面一样,使用 ./configure 生成makefire文件,然后执行 make进行编译,最后 make install进行按安装0
      • 启动nginx
        • cd /usr/local/nginx/sbin
        • ./nginx
    4. 访问nginx

      • 用Windows系统去访问Linux下的nginx的话,默认是不能访问的,因为防火墙拦截了,需要关闭防火墙或者开房访问的端口号,80端口
      • 查看开放的端口号 firewall-cmd --list-allimage-20231121213443831
      • 设置开放的服务或端口号
        • firewall-cmd --add-service=http --permanent
          • 在 Linux 系统中,防火墙用于保护计算机免受来自网络的攻击和恶意访问。firewall-cmd 命令是 Red Hat 系列发行版中默认使用的防火墙工具,它可以用于配置和管理防火墙规则。
          • --add-service=http 参数表示将 HTTP 服务添加到防火墙规则中。这个参数会自动配置所有必要的端口和协议,以便允许来自网络的 HTTP 请求通过防火墙。如果需要添加其他服务,可以将 http 替换为对应的服务名称,比如 ftpssh 等。
          • --permanent 参数表示将更改永久保存到防火墙规则中,即使系统重启后也能生效。如果省略这个参数,则更改只会在当前会话中生效,系统重启后会被清除。
          • 因此,运行 firewall-cmd --add-service=http --permanent 命令后,HTTP 服务将被添加到防火墙规则中,并且这个更改会永久保存在防火墙规则中。
        • firewall-cmd --add-port=80/tcp --permanent
          • 在这个命令中,--add-port=80/tcp 参数表示将端口号 80 的 TCP 流量添加到防火墙规则中。这将允许来自网络的 TCP 流量通过防火墙,并传递到本地计算机上的端口 80。
          • --permanent 参数表示将更改永久保存到防火墙规则中,即使系统重启后也能生效。如果省略这个参数,则更改只会在当前会话中生效,系统重启后会被清除。
          • 因此,运行 firewall-cmd --add-port=80/tcp --permanent 命令后,端口号 80 的 TCP 流量将被添加到防火墙规则中,并且这个更改会永久保存在防火墙规则中。这样可以允许外部访问你的计算机上运行的使用端口 80 的服务,比如 Web 服务器。
      • 重启防火墙
        • firewall-cmd --reload
        • 再次查看:firewall-cmd --list-allimage-20231121213701731
      • 访问
        • 在Linux终端输入 ifconfig,查询到ens33的IP地址,打开浏览器,输入 IP地址:80,如果弹出nginx的网页这说明防火墙设置成功

二、拓展

  1. 配置环境变量PATH,加入nginx命令路径
    • vim /etc/profile增加:export PATH="/usr/local/nginx/sbin: /:$PATH"
    • 输入 source /etc/profile
      • 在 Linux 系统中,/etc/profile 是一个系统范围的配置文件,其中包含了一些全局的环境变量和系统级别的设置。这个文件通常用于设置系统范围的环境变量、添加系统级别的路径、定义全局的别名等。
      • 通过运行 source /etc/profile 命令,你可以立即加载并应用/etc/profile 中的配置更改,而不需要重新启动系统。这样,你就可以立即使用新的环境变量和系统级别的设置,而无需关闭当前终端会话。
      • 需要注意的是,source 命令是 Bash shell 的内置命令,它会在当前 shell 环境中加载并执行指定的脚本文件(这里指的是 /etc/profile 文件)。因此,该命令只会影响当前的 shell 会话,对其他 shell 会话没有影响。
      • 总之,运行 source /etc/profile 命令可以立即加载系统级别的环境变量和配置文件,使其在当前 shell 会话中生效
    • 现在可以输入nginx -v就有对应的结果了