Estou tentando usar o nginx como cache proxy para o tomcat, usando dois contêineres separados. Eu criei um contêiner nginx da imagem nginx oficial; o mesmo para o tomcat, escutando na porta 8080.
Agora, como devo configurar o nginx como cache de proxy para o conteúdo do tomcat?
O conteúdo no servidor web tomcat está no caminho: localhost: 8080 / shaka-player-master / demo /
Este é o nginx.conf em / etc / nginx:
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
proxy_cache_path /tmp/nginx levels=1:2 keys_zone=my_zone:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Eu tenho que dizer que existem, a partir do nginx docker imagem oficial, pastas / etc / nginx / sites-available nem / etc / nginx / site-enabled.
Eu quero dizer que no caminho / usr / share / nginx / html / do container nginx existe apenas um index.html criado automaticamente a partir da imagem nginx. O outro arquivo de configuração exclusivo está em /etc/nginx/conf.d/default.conf ...:
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main;
location / {
proxy_cache my_zone;
add_header X-Proxy-Cache $upstream_cache_status;
include proxy_params;
proxy_pass http://localhost:8080/shaka-player-master/demo;
}
#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 /usr/share/nginx/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;
#}
}
Meu gol é: quando eu executo link (ou algum outro caminho na mesma porta), a primeira vez (cache miss) eu poderia dar conteúdo do localhost: 8080 / shaka-player-master / demo / index.html
e, em seguida, quando eu recarregar localhost: 9000, há um acerto de cache.
Eu usaria o nginx como cache de proxy porque eu configuraria um CDN usando mais instâncias nginx (containers).
Espero que alguém possa me ajudar nessa configuração do nginx, porque estou gastando muito tempo tentando corrigir esse problema.
Obrigado.