一些中小企业的文件分享,完全不必去架设一些单独的文件服务器,使用nginx经过简单的配置即可完成一个非常好用的http文件共享服务器。
以windows系统为例,先去下载一个nginx压缩包。地址如下:
nginx: downloadhttp://nginx.org/en/download.html常用命令:
1、启动:
>start nginx 或 >nginx.exe
注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
2、停止:
>nginx.exe -s stop 或 >nginx.exe -s quit
注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
3、重新载入Nginx:
>nginx.exe -s reload
当配置信息修改,需要重新载入这些配置时使用此命令。
4、重新打开日志文件:
>nginx.exe -s reopen
5、查看Nginx版本:
>nginx -v
将下载好的文件解压缩到一个地方,配置一下nginx.conf文件:
server {
listen 8080;
server_name localhos
location / {
root c:\eclipse;
index index.html index.htm;
allow all;
autoindex on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
(1)本机80端口已被占用,改一下端口为8080
(2)allow 是ngx_http_access_module模块的配置项,以下内容是从其他文章中摘选出来的内容,方便扩展阅读。
模块名ngx_http_access_module
,很多人一定很陌生,但是deny和allow相比没一个人不知道的,实际上deny和allow指令属于ngx_http_access_module.我们想控制某个uri或者一个路径不让人访问,在nginx就得靠它了。
nginx的访问控制模块语法很简单,至少比apache好理解,apache的allow和deny的顺序让很多初学者抓头.好了具体看下这个插件的使用方法吧。
1、安装模块
这个模块内置在了nginx中,除非你安装中使用了--without-http_access_module。如果你还没安装过nginx,那么请参考下ttlsa之前写的nginx安装.
2、指令
allow
语法: allow address | CIDR | unix: | all;
默认值: —
配置段: http, server, location, limit_except
允许某个ip或者一个ip段访问.如果指定unix:,那将允许socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
deny
语法: deny address | CIDR | unix: | all;
默认值: —
配置段: http, server, location, limit_except
禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问.注意:unix在1.5.1中新加入的功能,如果你的版本比这个低,请不要使用这个方法。
3. allow、deny实例
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;
}
从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问. 在实际生产环境中,我们也会使用nginx 的geo模块配合使用,有兴趣的请参考ttlsa相关文章nginx geo使用方法.
4. 结束语
nginx访问控制模块要数nginx里面最简单的指令,只要记住你想禁止谁访问就deny加上IP,想允许则加上allow ip,想禁止或者允许所有,那么allow all或者deny all即可.
(3)autoindex on; 表示允许用户遍历文件夹中内容
还有2个常用属性配置,本例子中未加入,需要得朋友自己尝试
autoindex_exact_size | 默认为 on,显示出文件的确切大小,单位是bytes。 改为 off 后,显示出文件的大概大小,单位是kB或者MB或者GB |
autoindex_localtime | 默认为off,显示的文件时间为GMT时间。 改为on后,显示的文件时间为文件的服务器时间 |
更多配置请参考Module ngx_http_autoindex_modulehttp://nginx.org/en/docs/http/ngx_http_autoindex_module.html
最终效果如下:
补充:
charset GBK,utf-8; #解决中文乱码
add_header Cache-Control no-store; #解决文件列表刷新不及时的问题