Nginx完成静态文件的设置

  • 什么是Nginx?
    反向代理服务器
  • 怎么用Nginx部署静态文件的服务?
  1. 安装nginx
#ubuntu
$ apt-get install nginx
  1. 配置
    主配置文件
vim /etc/nginx/nginx.conf

# 如果你在启动nginx访问nginx出现没有权限的错误页面的时候,可以修改跑nginx进程的用户为root
user  root;


# nginx的配置会包含/etc/nginx/conf.d/目录下,所有以.conf结尾的所有的子配置文件

include /etc/nginx/conf.d/*.conf;

子配置文件

# 可能没有子配置文件,那就加一个,只要以conf结尾即可
vim /etc/nginx/conf.d/default.conf

server {
    listen       8888;
    server_name  localhost;

    location /group1/M00/ {
        alias /var/fdfs/storage/data/;
    }
}

置静态文件具体说明(拓展)

# alias的使用说明

location /group1/M00/ {
    alias /var/fdfs/storage/data/;
}
当访问如下链接的时候:
http://www.meiduo.site:8888/group1/M00/00/01/CtM3BVrLmnaADtSKAAGlxZuk7uk4998927

nginx的静态服务会返回如下文件内容
/var/fdfs/storage/data/00/01/CtM3BVrLmnaADtSKAAGlxZuk7uk4998927


# root的使用
location /static/ {
	root /root/;
}
# 当访问如下路径的时候
http://www.meiduo.site:888/static/a.jpg

# 实际访问如下文件内容
/root/static/a.jpg


# root 与 alias 的异同
# 1. 都是提供静态文件的服务
# 2. alias解析的时候,会从location的后面去截取文件的路径,拷贝到alisa指定的目录后,找到文件,去完成整个解析。
# 3. root解析的时候,直接拷贝url中的文件的全部路径到root指定的目录后,找到文件,完成整个解析。

如何使用nginx转发http请求(拓展)

# 还可以使用nginx实现http请求的转发
location / {
	proxy_pass http://127.0.0.1:8001;
}
  1. nginx的操作
# 启动
nginx
或者
nginx -c /etc/nginx/nginx.conf # 以哪个主配置文件启动nginx

# 停止
nginx -s stop

# 平滑重启
nginx -s reload

url的改写

  • 目的:
    ImageFiled:
    数据库中的值:
    group1/M00/00/01/CtM3BVrLmkaAPIMJAAESCG7GAh43642702通过{{ content.image.url }}调用ImageFiled的url的属性得到:
    http://meiduo.site:8888/group1/M00/00/01/CtM3BVrLmkaAPIMJAAESCG7GAh43642702
  • 怎么做到的?
  1. 添加一个storage的类
    继承原来的类
    实现_open_save方法 (文档要求实现)
  2. 改写类的url的方法
def url(self, name):    
	return 'http://192.168.103.143:8888/' + name
  1. 把django的默认的存储类,替换成自己改写strorage的类。
DEFAULT_FILE_STORAGE = 'meiduo_mall.utils.fastdfs.fdfs_storage.FastDFSStorage'
  1. 前端使用ImageField的url属性
{{ content.image.url }}

分页

  • 数据库层面怎么去实现分页?(面试必问)
  • 分页的基础
    数据库中一共有16条记录
    每页显示多少条记录:5
    显示第几页的数据: 3
    1页: 1 - 5
select * from tb_sku LIMIT 0, 5;

# 0 起始位置,索引从0开始
# 5 条数/偏移量

2页: 6 - 10

3页: 11 - 15

4页: 16 - 20

  • 请求参数怎么构建?
    页码: page_num
    每页条数: page_size
  • 一个分页公式(拓展)
    起始索引怎么算出来
    起始索引位置:(page_num -1) * page_size
    偏移量:page_size

总页数怎么输出来:

总记录数/每页记录数, 然后向上取整即可。

  • 在一个标准json的请求和响应中,后台需要响应一些什么参数(拓展)
    对象的列表
    总页数 / 总记录数