CentOS 7环境搭建可以看一下这篇文章 bifang框架运行环境搭建入门指南,这里就不赘述了
Nginx源码可以去这里 Nginx官方下载界面 下载,我这里用的是nginx-1.18.0
版本的,这个可以自行选择,建议尽量选择最新的稳定版本去使用
./configure
,执行配置文件,configure
可以自行选择配置参数,有一些模块默认是不添加进去编译的,得手动选择,这里就不输入参数了,使用默认的配置生成Makefile
文件即可。出现如下图所示就是配置文件执行成功了make
编译源码,可以根据自己系统的实际情况加上-j
选项,加快编译速度。编译成功之后如下图make install
执行安装命令,由于我们选择的是默认安装参数,Nginx
被安装到了/usr/local/nginx/
目录下,进入该目录,目录内容如下目录 | 作用 |
---|---|
conf | 存放Nginx配置文件的目录 |
html | 存放html页面的目录,初始有一个index.html(Nginx欢迎界面)的和50x.html(错误界面) |
logs | Nginx运行日志文件存放目录 |
sbin | Nginx可执行文件存放目录 |
sbin/
目录,输入./nginx -c /usr/local/nginx/conf/nginx.conf
来启动Nginx
,启动完成后输入netstat -nlp|grep 80
检查80端口是否启动,启动成功如下图ifconfig
查看自己Linux的网卡信息,找到IP地址,如下图所示,IP地址是192.168.1.130
192.168.1.130
,出现如下界面,即表示Nginx
可以正常使用了autoindex
模块是默认安装的,所以我们不需要重新去配置编译了。接下来先看一下一个类似的界面 演示界面,autoindex
模块的效果与该界面相似,就是将本地目录映射到云端去。接下来先进入sbin
目录。
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
};
配置参数具体作用见下表
配置 | 说明 |
---|---|
autoindex | autoindex配置开关,为on则表示打开 |
autoindex_format | 显示文件格式,有四种可以格式可以选择,分别是html、json、jsonp、xml,默认是html格式 |
autoindex_localtime | 默认为off,显示的文件时间为GMT时间 改为on后,显示的文件时间为文件的服务器时间 |
autoindex_exact_size | 默认为 on,显示出文件的确切大小,单位是bytes 改为 off 后,显示出文件的大概大小,单位是kB或者MB或者GB |
从本小节前面介绍的内容可以看出如果我们想使用
Nginx
某个模块但是又不知道具体如何配置时,可以去看一下源码,里面有配置信息,而且是绝对不会出错的,毕竟百度谷歌可以骗人,但是代码是不会骗人的
进入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;
}
修改配置文件后进入sbin/
目录,输入./nginx -s reload
重启Nginx
,然后去浏览器,输入IP/autoindex
,这里是http://192.168.1.130/autoindex/
,可以看到如下界面,即为配置成功
本文先是介绍了如何在CentOS 7下使用源码编译安装Nginx
,然后通过一个使用一个简单的模块,让我们认识了Nginx
的基本配置及使用方法。本文是本系列的开篇,如果觉得对您有帮助的话可以关注该专栏,接下去不定期会有关于Nginx
干货输出。