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

 

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、删除配置文件,多余的2条OUTPUT记录,保持一条配置记录,如下所示

[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配置引发的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值