准备工作
首先我们需要一个index页面,这里我简单一点,直接用baidu的首页进行演示.
直接进入百度,在浏览器按下ctrl+s
即可保存网页,然后放到对应的文件夹,我放置的位置是:
D:/docker/nginx/html/index.html
配置nginx.conf文件
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
charset utf-8;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
alias /usr/share/nginx/html/;
index index.html index.htm;
charset utf-8;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
alias和root的区别
这里要注意alias
和root
的区别,root
会将uri
作为资源访问路径到进行查找.
举例说明:
location /css/ {
root /usr/share/nginx/html/;
index index.html index.htm;
charset utf-8;
}
当uri
是/css/xxx.css
时,服务器会返回/usr/share/nginx/html/css/xxx.css
.
如果配置换成alias
:
location /css/ {
alias /usr/share/nginx/html/;
index index.html index.htm;
charset utf-8;
}
访问/css/xxx.css
时,服务器返回: /usr/share/nginx/html/xxx.css
使用alias时,目录名一定要加上
/
符号
alias只能位于location中.
使用gzip对资源进行静态压缩
我们在web传输过程中,可以对静态资源进行压缩处理减少传输的字节数,来优化页面响应的速度.
# 打开gzip
gzip on;
# 当传输的字节小于gzip_min_length时,不再进行压缩
gzip_min_length 1;
# 压缩级别
gzip_comp_level 2;
# 对某些类型的文件才进行压缩
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/git image/png;
从响应头的Content-Encoding:gzip可以看到字节被进行压缩了.
使用autoindex来展示文件树
对你想要渲染的文件夹配置一下autoindex
即可. 注意,需要以/
结尾
location / {
alias /usr/share/nginx/
autoindex on;
}
使用set指令限制静态资源的响应速度
location / {
alias /usr/share/nginx/
autoindex on;
# 限制每秒响应的速度
set $limit_rate 100k;
}
使用log_format进行日志格式定义
log_format main '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_send "$http_referer"'
'"$http_user_agent" "$http_x_forwarded_for"';
access_log logs/access.log main;