Você pode usar o nginx como um proxy reverso de armazenamento em cache. Os links a seguir serão úteis.
o seguinte é nossa configuração atual nos aplicativos
mas gostaríamos de adicionar nginx como cache de proxy reverso, como lula ou verniz é possível editar essa configuração para habilitar esse comportamento de cache ou eu preciso adicionar outro nginx na frente desta configuração como faria para o squid ou verniz
se isso puder ser feito sem recorrer ao uso de squid e verniz, seria bom ter a configuração completa em nginx
muito obrigado
upstream backend_appname{
#start1.someserver.com
server start1.someserver.com:7810 fail_timeout=3s;
server start1.someserver.com:7811 fail_timeout=3s;
server start1.someserver.com:7812 fail_timeout=3s;
server start1.someserver.com:7813 fail_timeout=3s;
}
server {
server_name appname.someserver.com;
listen 80;
access_log logs/access_appname.log;
#error_log logs/error_appname.log;
location /nginx_status {
stub_status on;
access_log off;
}
location /static {
root /home/someuser/work/appname;
expires max;
add_header Cache-Control public,max-age=604800,post-check=604800,pre-check=1209600;
}
location / {
root /home/someuser/work/appname;
fastcgi_pass backend_appname;
set $addr $remote_addr;
if ($http_x_forwarded_for ~ "(?:^|,)\s*(\d+\.\d+\.\d+\.\d+)\s*$") {
set $addr $1;
}
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param REMOTE_ADDR $addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
}
Eu sugeriria usar o Varnish, já que ele é feito para ser um proxy reverso e pode executar muito mais rápido que o nginx nessa capacidade.
O verniz é ajustado para o desempenho. Faz coisas malucas como compilar seus arquivos de configuração em objetos C, que são então carregados em sua memória. Isso pode não parecer muito, mas realmente faz diferença quando você tem alguma lógica definida nas configurações (via a própria linguagem VCL do Varnish, que é legal em si).
Eu vejo no que você está chegando, bu nginx não é um programa monolítico que faz tudo (diferente do apache). É feito para fazer algumas coisas e fazê-las bem ... se houver um proxy reverso melhor (Varnish), use isso!
Apenas meus pensamentos:)
Tags cache nginx reverse-proxy