开发者

linux系统离线安装nginx全过程

开发者 https://www.devze.com 2024-08-10 13:52 出处:网络 作者: 熊出没
目录一、下载nginx二、环境依赖检查2.1 gcc检查2.2 PCRE检查2.3 zlib检查2.4 openssl检查三、安装nginx四、启动nginx五、设置开机自启动总结介绍:nginx是一个高性能的http和反向代理服务器,并发能力很强,一般用来
目录
  • 一、下载nginx
  • 二、环境依赖检查
    • 2.1 gcc检查
    • 2.2 PCRE检查
    • 2.3 zlib检查
    • 2.4 openssl检查
  • 三、安装nginx
    • 四、启动nginx
      • 五、设置开机自启动
        • 总结

          介绍:nginx是一个高性能的http和反向代理服务器,并发能力很强,一般用来做负载均衡比较多,日常开发中用作web服务器

          一、下载nginx

          地址:nginx: download

          我们下载这个稳定版本

          linux系统离线安装nginx全过程

          二、环境依赖检查

          nginx安装需要很多外部依赖,先登录到linux服务器

          2.1 gcc检查

          gcc -v

          出现如下,说明gcc是安装了的

          linux系统离线安装nginx全过程

          如果最后一行没有出现对应gcc版本信息,那就要去手动下载了 ,下面的部分是下载安装各种依赖

          提供个阿里云镜像地址:Centos-7-os-x86_64-Packages安装包下载_开源镜像站-阿里云

          gcc 清单

          cpp-4.8.5-44.el7.x86_64.rpm
          gcc-4.8.5-44.el7.x86_64.rpm
          glibc-devel-2.17-317.el7.x86_64.rpm
          glibc-headers-2.17-317.el7.x86_64.rpm
          kernel-headers-3.10.0-1160.el7.x86_64.rpm
          libmpc-1.0.1-3.el7.x86_64.rpm
          mpfr-3.1.1-4.el7.x86_64.rpm

          一个个找到下载,小技巧:可以直接复制名字定位,ctrl+f

          linux系统离线安装nginx全过程

          把下载好的gcc依赖统一上传到服务器的某个文件夹下,或者把笔者提供的zip包上传上去,解压即可,以下是几个解压相关的命令

          1.解压缩zip文件到当前目录:

          unzip file.zip

          2.解压缩zip文件到指定目录:

          unzip file.zip -d /path/to/directory

          3. 查看zip文件内容而不解压缩:

          unzip -l file.zip

          如果没有安装unzip命令,可以通过以下命令在大多数Linux发行版中安装(需要连接网络):

          sudo apt install unzip # 对于基于Debian的发行版(如Ubuntu)
          sudo yum install unzip # 对于基于RPM的发行版(如Fedora、CentOS)

          不想安装unzip,那就都单独上传到同一个文件夹下即可

          然后在这个文件夹下执行以下命令

          rpm -Uvh *.rpm --nodeps --force

          2.2 PCRE检查

          以下是百度百科的介绍:

          • PCRE(perl Compatible Regular Expressions)是一个Perl库,包括perl 兼容的正则表达式库。
          • 这些在执行正规表达式模式匹配时用与Perl 5同样的语法和语义是很有用的。
          • Boost太庞大了,使用boost regex后,程序的编译速度明显变慢。
          • 测试了一下,同样一个程序,使用boost::regex编译时需要3秒,而使用pcre不到1秒。
          • 因此改用pcre来解决C语言中使用正则表达式的问题

          为什么要这个库?因为nginx是使用C语言开发的,为了实现高性能,用到了这个库

          在服务器上执行

          rpm -qa | grep pcre

          可以看到笔者的服务器已经安装了这个依赖

          linux系统离线安装nginx全过程

          如果没有出现这些信息说明没有安装,需要自行下载

          下载地址:https://www.pcre.org/

          点进去有个版本介绍

          翻译下:

          PCRE库有两个主要版本。目前的版本PCRE2于2015年发布,目前为10.39版本。

          较早但仍广泛部署的PCRE库最初于1997年发布,版本为8.45。这一版本的PCRE现在已经寿终正寝,不再积极维护。8.45版本预计将是旧的PCRE库的最终版本,新项目应该使用PCRE2。

          linux系统离线安装nginx全过程

          继续点击这个,外网有点慢

          linux系统离线安装nginx全过程

          有很多版本,这里以最新版举例

          linux系统离线安装nginx全过程

          下载下来后上传到linux服务器某个文件夹下 

          执行解压命令

          tar -xvf pcre2-10.43.tar.gz

          cd进入解压后的目录下依次执行

          ./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路径下)
          make
          make install

          2.3 zlib检查

          百度介绍:

          • zlib是一种用于数据压缩和解压缩的开源软件库。它使用的是压缩算法为DEFLATE,可以有效地压缩和解压缩大部分数据。
          • zlib可以被广泛应用于http://www.devze.com许多不同的场合,例如软件安装包的压缩、数据库文件的压缩、网络数据传输的压缩等。它的使用方法简单,支持多种编程语言,且具有较高的压缩率和解压率。
          • zlib的优点是可以有效地压缩和解压缩大部分数据,使用方法简单,支持多种编程语言,并且具有较高的压缩率和解压率。缺点是压缩率不如其他一些算法高,例如bzip2和LZMA。
          • zlib是一个轻量级的库,可以在不同的系统平台上使用。它的源代码可以在网络上免费下载,并且具有较高的可移植性。zlib支持的压缩格式为DEFLATE,可以有效地压缩和解压缩大部分数据。
          • zlib提供了一组简单的函数来实现数据的压缩和解压缩。它支持多种编程语言,例如C、C++、Java、python等,可以方便地在这些语言中使用。zlib提供的函数包括压缩数据的compress函数和解压缩数据的uncompress函数。这两个函数的使用方法非常简单,只需要提供待压缩或解压缩的数据和目标缓冲区的地址即可。
          • zlib还提供了一些高级的函数,可以支持更复杂的压缩和解压缩操作。例如,可以使用deflateInit、deflate和deflateEnd函数来进行流式压缩,可以使用inflateInit、inflate和inflateEnd函数来进行流式解压缩。
          • 总的来说,zlib是一种非常方便的数据压缩和解压缩工具,它可以有效地压缩和解压缩大部分数据,并且使用方法简单,支持多种编程语言。

          在服务器上执行

          rpm -qa | grep zlib

          笔者所在linux系统已经安装zlib

          linux系统离线安装nginx全过程

          没有如上信息,要下载安装

          地址:zlib Home Site

          zlib是这两位开发的,前者写压缩算法,后者写解压缩算法

          linux系统离线安装nginx全过程

          往下划 ,找到这个点击下载

          linux系统离线安装nginx全过程

          下载好后上传到服务器某文件夹下

          执行解压命令

          tar -zxvf zlib.tar.gz

          再cd 到解压后的zlib目录顺序执行

          ./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路径下)
          make
          make install

          2.4 openssl检查

          服务器上输入

          openssl version

          linux系统离线安装nginx全过程

          很抱歉,笔者的服务器也已经安装了openssl,你如果没有出现对应信息,需要自己下载安装

          下载地址:[ Downloads ] - /source/index.html

          这里举例下载的是这个最新版

          linux系统离线安装nginx全过程

          下载好后,同样的上传到服务器某个文件夹下解压

          执行命令

          tar -zxvf openssl-3.3.0.tar.gz

          然后进入解压目录依次执行如下

          ./configure (后面可加 --prefix=yourpath,安装到指定路径,一般不加,就安装到默认路下)
          make
          make install

          三、安装nginx

          以上外部依赖都准备好后,可以安装nginx了

          首先把下载的nginx压缩包上传到服务器某文件下,笔者这里上传到/opt/nginx下

          linux系统离线安装nginx全过程

          依次执行如下命令

          cd /ojspt/nginx
          tar -zxvf nginx-1.24.0.tar.gz
          cd nginx-1.24.0/

          进入解压后的文件夹下执行如下,这里配置安装到/usr/local下

          ./configure (--prefix=/usr/local/nginx,这是指定安装到某个路径下,如果不指定,则默认也是安装到这个路径下,没有nginx文件夹会自动创建)
          make
          make install

          我这里执行完第一句报错了,我重新安装下PCRE库(按照上述pcre流程来)

          linux系统离线安装nginx全过程

          安装好后再进入nginx的解压目录

          linux系统离线安装nginx全过程

          执行这个./configure

          make
          make install

          四、启动nginx

          接着启动nginx

          cd /usr/local/nginx/sbin/
          ./nginx

          nginx的默认启动端口是80

          输入以下命令查看端口80

          sudo lsof -i :80

          可以看到80端口被nginx监听了

          linux系统离线安装nginx全过程

          把80端口的访问权限打开www.devze.com

          -- 开通 80 端口 访问权限
          sudo firewall-cmd --permanent --add-port=80/tcp
          
          -- 重载防火墙
          sudo firewall-cmd --reload

          linux系统离线安装nginx全过程

          浏览器访问下:192.168.19.16:80 ,说明nginx启动成功了

          linux系统离线安装nginx全过程

          修改端口,比如改成8081(注意先把8081端口的防火墙开启,命令参考上面)

          cd /usr/local/nginx/conf
          vim nginx.conf

          按 i 键,把监听端口改成8081

          linux系统离线安装nginx全过程

          esc 退出,输入:wq 保存

          再执行以下命令

          cd /usr/local/nginx/sbin/
          ./nginx

          这时候浏览器访问 192.168.19.16:8081,修改成功了

          linux系统离线安装nginx全过程

          这里有个问题,之前的端口80,nginx服务我没有停用,浏览器打开192.168.19.16:80,还是可以访问的

          linux系统离线安装nginx全过程

          服务器查看80和8081端口,发现都被nginx监听了

          linux系统离线安装nginx全过程

          既然修改了端口,那原先的不应该再监听了,杀死80端口对应nginx的pid

          kill 22698

          发现80端口不再被nginx监听,释放出来了,浏览器也无法访问

          linux系统离线安装nginx全过程

          到这里nginx 已经启动好了

          五、设置开机自启动

          这里采用Systemd方式,把nginx作为系统服务,设置开机自启动

          首先执行以下命令

          sudo vim /etc/systemd/system/nginx.service

          创建一个nginx系统服务文件,按 i 键并输入以下内容,esc键退出,:wq保存

          注意 /usr/local/nginx要替换成自己的nginx的安装路径(不是解压路径)

          nginx -s quit # 这种方法较stop相比就比较温和,需要进程完成当前工作后再停止。
          nginx -s stop # 立即停止服务 这种方法比较强硬,无论进程是否在工作,都直接停止进程

          如果想温和退出nginx,编程客栈ExecStop换成如下

          ExecStop=/usr/local/nginx/sbin/nginx -s quit
          [Unit]
          Description=The nginx HTTP and reverse proxy server
          After=network.target
           
          [Service]
          Type=forking
          ExecStartPre=/usr/local/nginx/sbin/nginx -t
          ExecStart=/usr/local/nginx/sbin/nginx
          ExecReload=/usr/local/nginx/sbin/nginx -s reload
          ExecStop=/usr/local/nginx/sbin/nginx -s sjavascripttop
           
          [Install]
          WantedBy=multi-user.target

          linux系统离线安装nginx全过程

          以上保存退出后依次执行以下命令

          先把之前启动的nginx服务进程杀掉

          linux系统离线安装nginx全过程

          刷新配置

          sudo systemctl daemon-reload

          允许nginx自启动

          sudo systemctl enable nginx.service

          启动nginx

          sudo systemctl start nginx.service

          查看开机自启动的服务列表

          systemctl list-units --type=service

          linux系统离线安装nginx全过程

          查看nginx服务的状态

          sudo systemctl status nginx.service

          linux系统离线安装nginx全过程

          浏览器输入 192.168.19.16:8081 是可以访问的

          停止nginx服务

          sudo systemctl stop nginx.service

          reboot重启验证nginx是否开机自启动

          linux系统离线安装nginx全过程

          总结

          以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

          0

          精彩评论

          暂无评论...
          验证码 换一张
          取 消

          关注公众号