Set static page compression cache and expiration time settings in nginx:
Friends who use the nginx server may know that it is necessary to set the html static page cache, page compression and expiration time settings. Let me introduce the configuration method to you, including ico, gif, bmp, jpg, jpeg, swf, js , css, mp3 files are cached locally.
You can use nginx to set the expiration time of the static resources on the server and compress and transmit the resources to reduce the bandwidth overhead of the server.
The following is how nginx sets the expiration time of static resources:
location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) {
root /var/www/opkeep;
expires 30d;
}
The above configuration can cache ico, gif, bmp, jpg, jpeg, swf, js, css, mp3 files locally, without re-acquiring them from the server every time they are accessed.
The compressed configuration is as follows:
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/plain application/x-Javascript text/css;
Compress text, js and css files. Generally, the compressed size is 25% of the original size, or even smaller.
Cache dynamic pages, cache expiration time
Here is the configuration of the virtual machine:
nginx configuration file content:
Mainly this sentence:
proxy_cache_path /www/ levels=1:2 keys_zOne=Z:10m inactive=1m
max_size=30g;
This sentence defines an area, the name is Z, the space in the memory is 10MB, and the maximum space in the hard disk is 30G;
inactive=1m Yes, the cache will be invalid after 1 minute, and request from the source server again
Correct it here, inactive=1m If no one visits the cache for 1 minute, nginx will delete these caches
/usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main ‘$remote_addr – $remote_user [$time_local]
“$request”‘
# ‘$status $body_bytes_sent “$http_referer” ‘
# ‘”$http_user_agent” “$http_x_forwarded_for”‘;
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
proxy_cache_path /www/ levels=1:2 keys_zOne=Z:10m inactive=1m
max_size=30g;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root /www/;
#expires max;
#proxy_store on;
#proxy_store_access user:rw group:rw all:rw;
#proxy_temp_path /www/;
proxy_cache Z;
proxy_cache_valid 200 1m;
#expires max;
include proxy.conf;
if ( !-e $request_filename) {
proxy_pass http://192.168.1.199:45815;
}
}
#Set here to read directly from the source server when accessing the content in the /ajax/ directory, mainly for ajax access requests, requiring real-time
location /ajax/ {
include proxy.conf;
if ( !-e $request_filename) {
proxy_pass http://192.168.1.199:45815;
}
}
#location ~.*.(jpg|png|jpeg|gif)
#{
# expires max;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ .php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on
127.0.0.1:9000
#
#location ~ .php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache’s document root
# concurs with nginx’s one
#
#location ~ /.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based
configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443;
# server_name localhost;
# ssl on;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_timeout 5m;
# ssl_protocols SSLv2 SSLv3 TLSv1;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
/usr/local/nginx/conf/proxy.conf
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Accept-Encoding ‘gzip’;
client_max_body_size 100m;
client_body_buffer_size 256k;
proxy_connect_timeout 60;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffer_size 512k;
proxy_buffers 8 512k;
proxy_busy_buffers_size 512k;
proxy_temp_file_write_size 512k;
html files can be cached, and then I went to many places to ask