CentOS 7使用源码编译安装Nginx,以及配置使用autoindex模块

Posted 彼方丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7使用源码编译安装Nginx,以及配置使用autoindex模块相关的知识,希望对你有一定的参考价值。

1、CentOS 7环境搭建

CentOS 7环境搭建可以看一下这篇文章 bifang框架运行环境搭建入门指南,这里就不赘述了

2、Nginx源码下载

Nginx源码可以去这里 Nginx官方下载界面 下载,我这里用的是nginx-1.18.0版本的,这个可以自行选择,建议尽量选择最新的稳定版本去使用

3、编译安装

  1. 解压源码,进入源码目录,里面的文件如下
    在这里插入图片描述
  2. 输入./configure,执行配置文件,configure可以自行选择配置参数,有一些模块默认是不添加进去编译的,得手动选择,这里就不输入参数了,使用默认的配置生成Makefile文件即可。出现如下图所示就是配置文件执行成功了
    在这里插入图片描述
  3. 输入make编译源码,可以根据自己系统的实际情况加上-j选项,加快编译速度。编译成功之后如下图
    在这里插入图片描述
  4. 输入make install执行安装命令,由于我们选择的是默认安装参数,Nginx被安装到了/usr/local/nginx/目录下,进入该目录,目录内容如下
    在这里插入图片描述
目录作用
conf存放Nginx配置文件的目录
html存放html页面的目录,初始有一个index.html(Nginx欢迎界面)的和50x.html(错误界面)
logsNginx运行日志文件存放目录
sbinNginx可执行文件存放目录
  1. 进入sbin/目录,输入./nginx -c /usr/local/nginx/conf/nginx.conf来启动Nginx,启动完成后输入netstat -nlp|grep 80检查80端口是否启动,启动成功如下图
    在这里插入图片描述
  2. 输入ifconfig查看自己Linux的网卡信息,找到IP地址,如下图所示,IP地址是192.168.1.130
    在这里插入图片描述
  3. 去电脑上,打开浏览器,输入刚刚查到的那个IP地址,如192.168.1.130,出现如下界面,即表示Nginx可以正常使用了
    在这里插入图片描述

4、配置autoindex模块

autoindex模块是默认安装的,所以我们不需要重新去配置编译了。接下来先看一下一个类似的界面 演示界面autoindex模块的效果与该界面相似,就是将本地目录映射到云端去。接下来先进入sbin目录。

4.1、autoindex模块配置参数说明

autoindex模块在源代码的src\\http\\modules\\ngx_http_autoindex_module.c文件中,与配置文件相关的代码如下,可以看到有四个配置参数

static ngx_conf_enum_t  ngx_http_autoindex_format[] = {
    { ngx_string("html"), NGX_HTTP_AUTOINDEX_HTML },
    { ngx_string("json"), NGX_HTTP_AUTOINDEX_JSON },
    { ngx_string("jsonp"), NGX_HTTP_AUTOINDEX_JSONP },
    { ngx_string("xml"), NGX_HTTP_AUTOINDEX_XML },
    { ngx_null_string, 0 }
};

static ngx_command_t  ngx_http_autoindex_commands[] = {

    { ngx_string("autoindex"),
      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
      ngx_conf_set_flag_slot,
      NGX_HTTP_LOC_CONF_OFFSET,
      offsetof(ngx_http_autoindex_loc_conf_t, enable),
      NULL },

    { ngx_string("autoindex_format"),
      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_TAKE1,
      ngx_conf_set_enum_slot,
      NGX_HTTP_LOC_CONF_OFFSET,
      offsetof(ngx_http_autoindex_loc_conf_t, format),
      &ngx_http_autoindex_format },

    { ngx_string("autoindex_localtime"),
      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
      ngx_conf_set_flag_slot,
      NGX_HTTP_LOC_CONF_OFFSET,
      offsetof(ngx_http_autoindex_loc_conf_t, localtime),
      NULL },

    { ngx_string("autoindex_exact_size"),
      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
      ngx_conf_set_flag_slot,
      NGX_HTTP_LOC_CONF_OFFSET,
      offsetof(ngx_http_autoindex_loc_conf_t, exact_size),
      NULL },

      ngx_null_command
};

配置参数具体作用见下表

配置说明
autoindexautoindex配置开关,为on则表示打开
autoindex_format显示文件格式,有四种可以格式可以选择,分别是html、json、jsonp、xml,默认是html格式
autoindex_localtime默认为off,显示的文件时间为GMT时间
改为on后,显示的文件时间为文件的服务器时间
autoindex_exact_size默认为 on,显示出文件的确切大小,单位是bytes
改为 off 后,显示出文件的大概大小,单位是kB或者MB或者GB

从本小节前面介绍的内容可以看出如果我们想使用Nginx某个模块但是又不知道具体如何配置时,可以去看一下源码,里面有配置信息,而且是绝对不会出错的,毕竟百度谷歌可以骗人,但是代码是不会骗人的

4.2、修改配置文件

进入conf/目录,修改nginx.conf文件,在server段里面添加以下配置,alias的作用是将/autoindex映射到虚拟目录/home/bifang

location /autoindex {
	alias  /home/bifang;
	autoindex on;
	autoindex_format html;
	autoindex_localtime on; 
	autoindex_exact_size off;
}

4.3、验证是否启动autoindex成功

修改配置文件后进入sbin/目录,输入./nginx -s reload重启Nginx,然后去浏览器,输入IP/autoindex,这里是http://192.168.1.130/autoindex/,可以看到如下界面,即为配置成功
在这里插入图片描述

5、总结

本文先是介绍了如何在CentOS 7下使用源码编译安装Nginx,然后通过一个使用一个简单的模块,让我们认识了Nginx的基本配置及使用方法。本文是本系列的开篇,如果觉得对您有帮助的话可以关注该专栏,接下去不定期会有关于Nginx干货输出。

以上是关于CentOS 7使用源码编译安装Nginx,以及配置使用autoindex模块的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 7 源码编译安装 Nginx

centos 7 编译安装nginx --1

Centos 7.0 编译安装LNMP(Linxu+nginx+mysql+php)之源码安装nginx

CentOS 7.2源码包编译安装nginx-1.10.2

centos7 源码编译安装heartbeat 以及结合nginx测试高可用

CentOS 7 安装 Nginx