Skip to content
本文总阅读量

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">