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中的变量,也可以是其它插件中定义的变量,具体看自己需要啥。

posted @ 2021-11-27 19:49  风之老凌  阅读(285)  评论(0)    收藏  举报