Nginx 访问静态资源报错404 Not Found 的问题解决过程

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

 

 

1、静态资源访问报错404

[nginx@dev_121_21 tmp]$ wget  http://bsstatic.powerlong.com/commonStatic/css/merchant_patch.css

 

--2016-11-22 18:18:28--   http://bsstatic.powerlong.com/commonStatic/css/merchant_patch.css

 

正在解析主机 bsstatic.powerlong.com... 192.168.121.91

 

正在连接 bsstatic.powerlong.com|192.168.121.91|:80... 已连接。

 

已发出 HTTP 请求,正在等待回应... 404  Not Found

 

2016-11-22 18:18:28 错误 404:Not Found。

 

 

 

[nginx@dev_121_21 tmp]$

 

telnet端口是OK的

[root@dev_121_21 ~]# telnet  bsstatic.powerlong.com 80

 

Trying 192.168.121.91...

 

Connected to bsstatic.powerlong.com.

 

Escape character is '^]'.

 

 

 

 

 

2、查看iptables状态,有多余的output记录

[root@dev_121_21 ~]# service iptables  status

 

表格:nat

 

Chain PREROUTING (policy ACCEPT)

 

num   target     prot opt source               destination        

 

1     REDIRECT   tcp  --   0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8081

 

 

 

Chain POSTROUTING (policy ACCEPT)

 

num   target     prot opt source               destination        

 

 

 

Chain OUTPUT (policy ACCEPT)

 

num   target     prot opt source               destination        

 

1     REDIRECT   tcp  --   0.0.0.0/0             127.0.0.1           tcp dpt:80  redir ports 8081

 

2     REDIRECT   tcp  --   0.0.0.0/0            127.0.0.1           tcp dpt:80 redir ports 8081

 

3     REDIRECT   tcp  --   0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8081

 

 

 

[root@dev_121_21 ~]#

 

 

 

3、删除配置文件,多余的2OUTPUT记录,保持一条配置记录,如下所示

[root@dev_121_21 ~]# vim  /etc/sysconfig/iptables

 

 

 

# Generated by iptables-save v1.4.7 on  Tue Nov 22 12:34:48 2016

 

*nat

 

:PREROUTING ACCEPT [22:1583]

 

:POSTROUTING ACCEPT [6:326]

 

:OUTPUT ACCEPT [6:326]

 

-A PREROUTING -p tcp -m tcp --dport 80 -j  REDIRECT --to-ports 8081

 

-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp  --dport 80 -j REDIRECT --to-ports 8081

 

COMMIT

 

# Completed on Tue Nov 22 12:34:48 2016

 

 

 

4、然后重启iptables服务

重启iptables服务

[root@dev_121_21 ~]# service iptables restart

 

iptables:清除防火墙规则:                                 [确定]

 

iptables:将链设置为政策 ACCEPT:filter nat                [确定]

 

iptables:正在卸载模块:                                   [确定]

 

iptables:应用防火墙规则:                                 [确定]

 

[root@dev_121_21 ~]#

 

 

然后查看iptables状态,只有一条REDIRECT记录存在:

[root@dev_121_21 ~]# service iptables  status

 

表格:nat

 

Chain PREROUTING (policy ACCEPT)

 

num   target     prot opt source               destination        

 

1     REDIRECT   tcp  --   0.0.0.0/0            0.0.0.0/0           tcp dpt:80 redir ports 8081

 

 

 

Chain POSTROUTING (policy ACCEPT)

 

num   target     prot opt source               destination        

 

 

 

Chain OUTPUT (policy ACCEPT)

 

num   target     prot opt source               destination        

 

1     REDIRECT   tcp  --   0.0.0.0/0            127.0.0.1           tcp dpt:80 redir ports 8081

 

 

 

[root@dev_121_21 ~]#

 

 

 

 

5、再尝试下,wget下载,可以wget成功了

[root@dev_121_21 ~]#  wget  http://bsstatic.powerlong.com/commonStatic/css/merchant_patch.css

 

--2016-11-22 18:27:52--   http://bsstatic.powerlong.com/commonStatic/css/merchant_patch.css

 

正在解析主机 bsstatic.powerlong.com... 192.168.121.91

 

正在连接 bsstatic.powerlong.com|192.168.121.91|:80... 已连接。

 

已发出 HTTP 请求,正在等待回应... 200 OK

 

长度:18298 (18K) [text/css]

 

正在保存至: “merchant_patch.css”

 

 

 

100%[====================================================================================================================================================================================================================================>]  18,298      --.-K/s   in 0s      

 

 

 

2016-11-22 18:27:52 (77.6 MB/s) - 已保存 “merchant_patch.css” [18298/18298])

 

 

总结:telnet能进nginx的80端口,但是HTTP请求访问拒绝,而nginx服务正常启动的情况下,一般就要查看下iptables端口转发,90%的问题都是因为iptables配置引发的。

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Nginx 访问静态资源报错404 Not Found 的问题解决过程_第1张图片

你可能感兴趣的:(Nginx 访问静态资源报错404 Not Found 的问题解决过程)