Nginx+tomcat負載均衡時靜態頁面報404


百度到的問題解決BLOG
nginx+2台tomcat負載均衡,應用程序已部署,單獨訪問tomcat時,可以訪問到所需要的頁面,配置負載均后,訪問不到內容
## 配置反向代理的后端tomcat集群
upstream web_server{
server 172.27.14.200:8080 weight=1 max_fails=2 fail_timeout=30s;
server 172.27.14.200:8090 weight=1 max_fails=2 fail_timeout=30s;
}
      #注:proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區
      proxy_temp_path /data0/proxy_temp_dir;
      #設置Web緩存區名稱為cache_one,內存緩存空間大小為50MB,1天沒有被訪問的內容自動清除,硬盤緩存空間大小為10GB。
      proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:50m inactive=1d max_size=10g;
server
     {
         listen       80;
         server_name  web_server;  
         #自動補全"/"
         if (-d $request_filename)
        {
         rewrite ^/(.*)([^/])$ http://$host/$1$2/ last;
         }
        #實現網頁動靜態分離
         location /
        {
          root /data0/htdocs/tomcat;
          index index.html index.htm;
                         if (!-f $request_filename)
                        {
                         rewrite ^/([a-zA-Z]+).html  /$1.jsp last;
                         proxy_pass http://web_server;
                         break;
                         }
           }
 
server {
listen 80;
server_name web_server;
## 網頁、視頻、圖片文件從本地讀取,且定義在瀏覽器中緩存30天靜態文件
location ~.*\.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma)$
{
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://web_server; ##此處藍色內容應該可以用指定路徑的方法訪問,我寫入的是tomcat下應用的目錄,還是報錯,暫未解決。。。
expires 30d;
}
## js、css文件從本地讀取,且定義在瀏覽器中緩存1小時
#以域名、URI、參數組合成Web緩存的Key值,Nginx根據Key值哈希,存儲緩存  內容到二級緩存目錄內
location ~ .*\.(js|css)?$
{
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://web_server; ##此處藍色內容應該可以用指定路徑的方法訪問,我寫入的是tomcat下應用的目錄,還是報錯,暫未解決。。。
expires 1h;
}
 ## 動態文件轉發到后端的tomcat集群
location ~ .*\.(php|jsp|cgi|jhtml|action)?$
{
proxy_pass http://web_server;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
#charset koi8-r;
 
#access_log logs/host.access.log main;
 
location / {
root html;
index index.html index.htm;
}
 
以下內容可以加入靜態文件的配置中,本次搭建未配置。
     #如果后端的服務器返回502、504、執行超時等錯誤,自動將請求轉發到 upstream負載均衡池中的另一台服務器,實現故障轉移。
       proxy_next_upstream http_502 http_504 error timeout invalid_header;
       proxy_cache cache_one;
       #對不同的HTTP狀態碼設置不同的緩存時間
       proxy_cache_valid 200 10m;
       proxy_cache_valid 304 1m;
       proxy_cache_valid 301 302 1h;
       proxy_cache_valid any 1m;
 
         編輯tomcat的配置文件server.xml
         在Hosts文件里面加上如下字段:
         <Context path="" docBase="/data0/htdocs/tomcat/ROOT" debug="0" reloadable="true" />
          解釋:tomcat默認回去"webapps"目錄去查找要訪問的文件,如果沒有找到就去"docBase"目錄去尋找。這個這段也可以不加,自己隨意。此處應該是


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM