Monday, September 14, 2015

php - Nginx and Apache, how to configure proxy_cache?

I have Nginx installed as a front end proxy for Apache, where Apache is servicing PHP and Nginx is servicing static files. I'm having a problem configuring Nginx to cache the output from PHP into a static file. I've tried with proxy_cache, but obviously I'm doing something wrong.



Here is my base configuration:



    server {

listen 80;

root /var/www/web;
index index.php index.html index.htm;

server_name web.com;

location / {
try_files $uri $uri/ /index.php;
}


# cache static files
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
access_log off;
add_header Cache-Control public;
}

location ~ \.php$ {
proxy_pass http://127.0.0.1:8080;


# Set header to be what we requested
proxy_set_header Host $host;
# Set proxy_cache expiry time
proxy_cache_valid 200 302 5m;
proxy_cache_valid 404 1m;
proxy_cache_valid 301 1h;
# Need this for snooping with tcpdump (turns off upstream compression)
proxy_set_header Accept-Encoding "";
# Set real IP header (needed for client IP detection in apache)

proxy_set_header X-Real-IP $remote_addr;
# Explicitly allow critical headers
proxy_pass_header Set-Cookie;
# Prevent 304 responses being returned from Apache and cached by nginx
proxy_set_header If-None-Match "";
}

location ~ /\.ht {
deny all;
}

}

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...