
想通过Nginx 0.87和Weblogic 9.23实现动态页面和静态页面的分离处理,遇到一个问题,请教下如何解决。
原有的应用是通过weblogic 9.23建立的一个Application,名字叫做life,context path是/life,应用的uri地址为http://192.168.10.11:7001/life/ ,应用路径是/testapp/life_test/life/web/,WEB-INF,动态页面和静态页面等全部存放在这个路径下。
nginx.conf中部分配置如下:
server { listen 9900; server_name 192.168.10.100; location ~ *\.(htm|html|gif|jpg|jpeg|png|bmp|css|js|txt)$ { root /picclife/svndba/nginxtest/picclife_test/life/web/; } location /life/ { proxy_pass http://192.168.10.11; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_max_temp_file_size 100m; }
访问http://192.168.10.100:9900/life/index.jsp 的时候页面静态内容(图片等)不能显示出来,
查看nginx logs/error.log发现有如下错误:
2012/08/12 17:11:12 [error] 30216#0: *281 open() "/testapp/life_test/life/web/life/public/js/Cookie.js" failed (2: No such file or directory), client: 10.64.100.9, server: localhost, request: "GET /life/public/js/Cookie.js HTTP/1.1", host: "192.168.10.11:9900", referrer: "http://192.168.10.11:9900/life/main.jsp"
2012/08/12 17:11:12 [error] 30216#0: *285 open() "/testapp/life_test/life/web/life/special/images/picc_logo.gif" failed (2: No such file or directory), client: 10.64.100.9, server: localhost, request: "GET /life/special/images/picc_logo.gif HTTP/1.1", host: "192.168.10.11:9900", referrer: "http://192.168.10.11:9900/life/main.jsp
日志中可以看到nginxopen静态文件失败了,失败的原因是获取静态文件的路径里多了/life这个层级,要是把/life去掉文件路径就是正确的。
刚刚接触nginx不久,还请各位朋友指导帮助下,谢谢!