Nginx+Tomcat在同一台服务器上工作

Nginx+Tomcat在同一台服务器上工作,tomcat,nginx,proxy,reverse-proxy,nginx-reverse-proxy,Tomcat,Nginx,Proxy,Reverse Proxy,Nginx Reverse Proxy,我正在使用Tomcat开发一个Web应用程序。我已经设置了一个前端NGINX服务器来提供静态内容,并将其余工作重定向到Tomcat服务器 我已经在NGINX中设置了该配置: proxy_cache_path /var/www/mysite/assets levels=1:2 keys_zone=my_cache:10m inactive=60m; proxy_cache_key "$scheme$request_method$host$request_uri"; server {

我正在使用Tomcat开发一个Web应用程序。我已经设置了一个前端NGINX服务器来提供静态内容,并将其余工作重定向到Tomcat服务器

我已经在NGINX中设置了该配置:

proxy_cache_path  /var/www/mysite/assets levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key   "$scheme$request_method$host$request_uri";

server {
        server_name             mysite.com www.mysite.com;
        listen                  443 ssl http2;

        ssl_certificate         /etc/ssl/mysite.crt;
        ssl_certificate_key     /etc/ssl/mysite.key;
        ssl_session_cache       shared:SSL:10m;
        ssl_session_timeout     10m;

        root                    /opt/tomcat/latest/webapps/mysite/;
        index                   index.jsp;

        location ~* \.(jpg|jpeg|png|gif|ico|css|js|xml|gz)$ {
                expires 12h;
        }

        location / {
                proxy_pass              http://127.0.0.1:8080/mysite/;
                proxy_redirect          off;
                proxy_set_header        Host $host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-Proto $scheme;
                proxy_set_header        X-Server-Proto $server_protocol;

                proxy_cache             my_cache;
                add_header              X-Proxy-Cache $upstream_cache_status;
        }
}
如您所见,我设置了代理重定向和代理缓存。使用最后一个指令add_header X-Proxy-Cache$upstream_Cache_status;我可以看到hva e是否命中或未命中加载资源

我发现的问题是:

如果我使用这个配置,我想我看不到命中/未命中标题, 所以我不知道它在代理缓存中是否运行良好。 如果我对整个location ~*\.jpg | jpeg | png | gif | ico | css | js | xml | gz$部分进行注释,我可以看到命中/未命中的标题,因此我认为代理缓存可以工作,但我不知道我是否让Tomcat管理静态内容,这就是我想要避免使用此部分的原因 如何将配置文件设置为使用代理缓存,并让NGINX管理静态内容jpg、css、js等等,。。。? 也许一切都很好,我也很好。。。 哪一个是最好的解决方案

谢谢。

具有添加头X-Proxy-Cache$upstream\u Cache\u状态;在NGINX配置中,意味着NGINX查看来自Tomcat的那些资产上设置的过期时间,并适当地缓存它们

附加位置块

结合

root                    /opt/tomcat/latest/webapps/mysite/;

将从磁盘而不是代理服务器为它们提供服务器,从而无需访问代理缓存。

因此,我应该删除代理缓存线和最后一条缓存线,不是吗?设置缓存的前两行,我猜取决于你想在哪里设置过期时间和其他细节。如果只想保持原样,请删除位置~*并保留代理缓存。如果您希望对缓存的资产进行更细粒度的控制,那么您可以执行类似于本例的操作,在本例中,您还可以向资产添加代理传递。
root                    /opt/tomcat/latest/webapps/mysite/;