Nginx完成静态文件的设置
- 什么是Nginx?
反向代理服务器 - 怎么用Nginx部署静态文件的服务?
- 安装nginx
#ubuntu
$ apt-get install nginx
- 配置
主配置文件
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;
}
- 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
- 怎么做到的?
- 添加一个storage的类
继承原来的类
实现_open
、_save
方法 (文档要求实现) - 改写类的url的方法
def url(self, name):
return 'http://192.168.103.143:8888/' + name
- 把django的默认的存储类,替换成自己改写strorage的类。
DEFAULT_FILE_STORAGE = 'meiduo_mall.utils.fastdfs.fdfs_storage.FastDFSStorage'
- 前端使用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的请求和响应中,后台需要响应一些什么参数(拓展)
对象的列表
总页数 / 总记录数