nginx系列基础(4)---nginx搭建静态资源web服务器
搭建静态web服务器
我们要搭建的网站如下图:

下载静态页面代码
wget http://dlib.net/files/dlib-19.22.tar.bz2
# 解压
bzip2 -d dlib-19.22.tar.bz2
tar xf dlib-19.22.tar
# 创建访问目录
mkdir -p /data/product/dlib/
# 复制web代码到访问目录
mv dlib-19.22/docs/* /data/product/dlib/
配置nginx
cd /usr/local/nginx/conf/
# 创建下层配置文件
mkdir conf.d
# 创建日志目录
mkdir /data/weblogs
- nginx.conf文件
cat nginx.conf
user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
include /usr/local/nginx/conf/conf.d/*.conf;
}
- dlib.fengzhilaoling.com.conf配置文件
server {
listen 192.168.100.201:80;
server_name dlib.fengzhilaoling.com;
access_log /data/weblogs/dlib.fengzhilaoling.com.access.log main;
location / {
# 有两种选择root和alias,这里使用alias。root有个问题,它会把URL中的路径带到我们的文件中来
alias /data/product/dlib/;
}
}
- 检查配置文件并重载
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
nginx -s reload
- 绑定本机hosts访问
192.168.100.201 dlib.fengzhilaoling.com

开启gzip压缩

user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
sendfile on;
keepalive_timeout 65;
gzip on; # 打开gzip on 关闭off
gzip_min_length 10; # 小于多少字节不压缩
gzip_comp_level 2; # 压缩级别 一般为2就可以
gzip_types test/plain application/x-javascript application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; # 压缩文件的类型,向已经压缩过的文件就没有必要压缩了
include /usr/local/nginx/conf/conf.d/*.conf;
}
再次访问

以目录形式分享静态资源
当我们想使用目录的形式分享我们的静态资源的时候,我们就要使用nginx的另一个模块
ngx_http_autoindex_module
我们可以在nginx的官方文档中查看nginx官方文档地址:http://nginx.org/en/docs/


- 开启autoindex
cat conf.d/dlib.fengzhilaoling.com.conf
server {
listen 192.168.100.201:80;
server_name dlib.fengzhilaoling.com;
access_log /data/weblogs/dlib.fengzhilaoling.com.access.log main;
location / {
alias /data/product/dlib/;
autoindex on;
}
}

限制客户端用户访问大文件的速度
我们服务器的带宽都是有限制的,所以当用户访问我们的大文件时就会占用我们服务器大量的带宽。
这时我们可以通过设置响应速度的方式来限制用户的响应,来空出带宽来供给给其它用户使用


cat conf.d/dlib.fengzhilaoling.com.conf
server {
listen 192.168.100.201:80;
server_name dlib.fengzhilaoling.com;
access_log /data/weblogs/dlib.fengzhilaoling.com.access.log main;
location / {
alias /data/product/dlib/;
autoindex on;
set $limit_rate 1k;
}
}
加入限制后,我们再次访问,会发现,网站访问速度非常慢

nginx记录日志
nginx记录日志的格式是通过 log_format来实现的
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
# main是这个格式的命名,应用不同域名的日志我们可能使用不同的格式来记录
- $remote_addr:远端IP地址(用户访问网站的地址)
- $time_local:访问的时间
- status:状态码
设置日志
access_log /data/weblogs/dlib.fengzhilaoling.com.access.log main;
# 设置日志位置,采用main格式来记录日志
log_fromat中的变量,可以是http://nginx.org/en/docs/http/ngx_http_core_module.html#variables中的变量,也可以是其它插件中定义的变量,具体看自己需要啥。


浙公网安备 33010602011771号