美文网首页
在centos7.8上用源代码安装nginx

在centos7.8上用源代码安装nginx

作者: 小虫草 | 来源:发表于2021-03-28 00:16 被阅读0次

    首先肯定是从nginx官方网站下载源代码到本地。
    http://nginx.org/en/download.html

    nginx源代码下载
    如上图所示,官网提供三种类型的源代码,分别是:
    • Mainline version - 主线版本,这个是当前最新的版本,但是不一定是稳定的;
    • Stable version - 稳定版本,这个是当前的稳定版本,一般下载这个版本就可以了;
    • Legacy versions - 历史版本,这里面都是以前的老版本,可以按照自己的实际需要挑选;
      我选择当前的稳定版本:nginx-1.18.0
      我都是直接用root用户进行操作,下载下来后解压它:
    [root@vb-node02 ~]#tar -zxf nginx-1.18.0.tar.gz
    

    安装nginx还需要依赖两个库,分别是:

    1. pcre
    2. zlib
      如果需要开启https的支持,则还需要依赖openssl库。我们从官方文档中可以找到如下说明:

    --with-pcre=path
    sets the path to the sources of the PCRE library. The library distribution (version 4.4 — 8.43) needs to be downloaded from the PCRE site and extracted. The rest is done by nginx’s ./configure and make. The library is required for regular expressions support in the location directive and for the ngx_http_rewrite_module module.
    --with-zlib=path
    sets the path to the sources of the zlib library. The library distribution (version 1.1.3 — 1.2.11) needs to be downloaded from the zlib site and extracted. The rest is done by nginx’s ./configure and make. The library is required for the ngx_http_gzip_module module.

    这里面可以看到所依赖的这两个库的版本区间,我们分别去这两个库的官网下载符合要求的版本代码,然后解压它们。关于openssl的安装说明中没有提到版本号,我直接下载了当前最新版本。

    openssl-1.1.1k.tar.gz
    pcre-8.43.tar.gz
    zlib-1.2.11.tar.gz
    

    解压这三个压缩包,然后进入nginx的源代码目录,执行configure脚本,并且指定这三个库的路径。https的支持不是默认开启的,所以我们除了指定openssl的路径之外,还需要手动开启它,开启它的方式是添加参数:
    --with-http_ssl_module
    那么完整的命令如下所示:

    ./configure --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.1k --with-http_ssl_module
    

    这里我指定三个库的路径用的是相对路径,你也可以使用绝对路径。
    执行完毕,如果没有问题的话会在最后看到如下输出:

    Configuration summary
      + using PCRE library: ../pcre-8.43
      + using OpenSSL library: ../openssl-1.1.1k
      + using zlib library: ../zlib-1.2.11
    
      nginx path prefix: "/usr/local/nginx"
      nginx binary file: "/usr/local/nginx/sbin/nginx"
      nginx modules path: "/usr/local/nginx/modules"
      nginx configuration prefix: "/usr/local/nginx/conf"
      nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
      nginx pid file: "/usr/local/nginx/logs/nginx.pid"
      nginx error log file: "/usr/local/nginx/logs/error.log"
      nginx http access log file: "/usr/local/nginx/logs/access.log"
      nginx http client request body temporary files: "client_body_temp"
      nginx http proxy temporary files: "proxy_temp"
      nginx http fastcgi temporary files: "fastcgi_temp"
      nginx http uwsgi temporary files: "uwsgi_temp"
      nginx http scgi temporary files: "scgi_temp"
    

    这表示Makefile文件已经按照我们指定的参数生成完毕,接下来就可以编译安装了。
    执行make命令安装nginx:

    make && make install
    

    如果没有报错的话就表示nginx安装成功。我们根据上面的信息进入到/usr/local/nginx目录下,可以看到如下四个目录:

    drwxr-xr-x. 2 root root 4096 3月  28 00:05 conf
    drwxr-xr-x. 2 root root   40 3月  28 00:05 html
    drwxr-xr-x. 2 root root    6 3月  28 00:05 logs
    drwxr-xr-x. 2 root root   19 3月  28 00:05 sbin
    

    然后我们执行

    [root@vb-node02 nginx]# sbin/nginx
    

    如果没有报错的话我们在浏览器中尝试访问一下。如果打开了如下页面的话表示nginx启动成功。


    nginx首页

    如果页面打不开的话检查一下防火墙是否没有放开80端口的访问限制。在centos7中可以用如下命令放开80端口:

    [root@vb-node02 nginx]# firewall-cmd --add-port=80/tcp --permanent
    [root@vb-node02 nginx]# firewall-cmd --reload
    

    至此,从源代码安装nginx完毕。

    相关文章

      网友评论

          本文标题:在centos7.8上用源代码安装nginx

          本文链接:https://www.haomeiwen.com/subject/amkuhltx.html