首先,得确认Nginx服务正常运行。
其次,图片的确已经正确上传。
然后,可以这样来做来减少调试的时间成本,将要访问的图片的路径粘贴到浏览器上来进行访问测试。
OK。具体操作:
1、一般本地环境能够正常运行,而上到服务器却不行了,可以确认是配置方面的问题。
2、按上面的路径方式访问返回404错误,同时,会显示是Ngnix返回的错误码,一定程度上可以认为是Ngnix配置问题导致的,当然,不排除Tomca可能运行出错,但只要图片的确正确上传了,那么就可以认为是Ngnix在搞事情。
3、因为以前没弄过Ngnix,所以立即百度Ngnix,发现问题要归结到/usr/local/ngnix/conf/ngnix.conf这个配置文件上
4、搞清楚Ngnix.conf的语句意义,写对配置语句。
4.1 图片属于静态资源,此配置文件中有专门的配置项
server {
listen 80 default;
server_name _;
root /data/www/default; //这里是默认值
index index.html index.htm index.jsp; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico|svg|htm)$ {
expires 30d; //配置图片资源的项
}
从这里看,Ngnix默认的配置是不适合我们的后台!
例如,我们的后台服务是放到Tomcat/webapps/中去的,当然这是没有配置虚拟目录映射的情况。那么,此情况下,就必须要修改ngnix.conf来进行适配。
4.2 假设我们的后台图片保存路径为tomcat/webapps/greatwall(后台项目名)/pics/。访问图片的路径为:http://www.*.com/greatwall/pics/123.jpg.那么,首先要将第一个root后面的路径修改为 root /usr/local/tomcat/webapps.然后,在location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico|svg|htm)$ 下方最好也增加路径 root /usr/local/tomcat/webapps; 另外,如果不想图片被自动清理掉,就设置下expires 30d; 30d表示30天意思。改为off,或删掉。
最后,修改后起作用的conf为:
server {
listen 80 default;
server_name _;
root /usr/local/tomcat/webapps;
index index.html index.htm index.jsp; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico|svg|htm)$ {
/usr/local/tomcat/webapps;
}
初次接触Ngnix,有不对的地方请不吝指出,谢谢!