Appearance
Ubantu 安装 Nginx
sudo apt install nginx
文件位置
- /usr/sbin/nginx:主程序
- /etc/nginx:存放配置文件
- /usr/share/nginx:存放静态文件
- /var/log/nginx:存放日志
启动命令
service nginx start # 启动nginx
service nginx reload # 重新加载nginx配置文件
另外两个命令
nginx -s reopen # 重启 Nginx
nginx -s stop # 停止 Nginx
Nginx只有在反向代理时才有缓存
nginx.conf配置文件 http
##
# Proxy Setting
##
proxy_connect_timeout 10; #服务器连接的超时时间
proxy_read_timeout 180; # 连接成功后,等候后端服务器响应时间
proxy_send_timeout 5; #后端服务器数据回传时间
proxy_buffer_size 16k; #缓冲区的大小
proxy_buffers 4 32k; #每个连接设置缓冲区的数量为number,每块缓冲区的大小为size
proxy_busy_buffers_size 96k; #开启缓冲响应的功能以后,在没有读到全部响应的情况下,写缓冲到达一定大小时,nginx一定会向客户端发送响应,直到缓冲小于此值。
proxy_temp_file_write_size 96k; #设置nginx每次写数据到临时文件的size(大小)限制
proxy_temp_path /etc/nginx/temp; #proxy缓存临时文件的大小
proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=10g; #设置缓存的路径和其他参数。被缓存的数据如果在inactive参数(当前为1天)指定的时间内未被访问,就会被从缓存中移除
/etc/nginx/temp 和 /etc/nginx/cache 文件需要提前创建并赋予权限
模拟假设资源在 /var/www/example.com,入口在/var/www/html
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
#要缓存文件的后缀,可以在以下设置。
location ~ .*\.(gif|jpg|png|jpeg|css|js)(.*) {
proxy_pass http://127.0.0.1:90; #nginx缓存里拿不到资源,向该地址转发请求,拿到新的资源,并进行缓存
proxy_redirect off; #设置后端服务器“Location”响应头和“Refresh”响应头的替换文本
proxy_set_header Host $host; #允许重新定义或者添加发往后端服务器的请求头
proxy_cache cache_one; #指定用于页面缓存的共享内存,对应http层设置的keys_zone
#为不同的响应状态码设置不同的缓存时间
proxy_cache_valid 200 302 24h;
proxy_cache_valid 301 30d;
proxy_cache_valid any 5m;
expires 3m; # 显示给前端缓存时间
add_header wall "hey!guys!give me a star.";
}
location / {
}
}
server {
listen 90;
listen [::]:90;
root /var/www/example.com;
location / {
}
}
测试,二次刷新出现
服务器缓存文件
删除服务器缓存文件,可以判断是浏览器缓存
选择disable cancel强制刷新
HTML 禁止浏览器缓存
HTML
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragm" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">