百度到的問題解決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"目錄去尋找。這個這段也可以不加,自己隨意。此處應該是
