问题描述:
image.png
一般情况下我们的upstream都是fastcgi://127.0.0.1:9000. 造成这个问题的原因大致有两个
1.php-fpm没有运行
执行如下命令查看是否启动了php-fpm,如果没有则启动你的php-fpm即可
用命令 netstat -ant | grep 9000 查看php-fpm进程,没有运行则启动;
2.可能是php-fpm队列满了
php-fpm.conf配置文件pm.max_children修改大一点,重启php-fpm并观察日志情况;
比如在本机telent到192.168.8.170 主机的9000 端口,被拒绝。
[zhu@hadoop log]$ telnet 192.168.8.170 9000
Trying 192.168.8.170...
telnet: connect to address 192.168.8.170: Connection refused
原因有两个
1)服务器存在防火墙,阻止了当前访问。
2)服务器没有启动相应的端口进行监听。或者该端口的监听地址为本机(127.0.0.1),如果这样的话,只有从本机发起的对端口的访问被允许,而外部主机访问被拒绝。
现对第二种情况进行解决:
1.在系统安装了类似于firewall等软件的情况下,根据对应的软件命令或者规则来进行调整
比如我们安装了firewall,可以使用
systemctl stop firewalld.service 命令来停止防火墙。
firewall-cmd --state 来查看防火墙的状态。
2.使用iptables:
iptables -F 清除所有的规则
iptables [-t table] [-AI chain] [-io interface] [-p protocol] [-s source] [-d destination] [--sport range] [--dport range] -j [action] 设置一个规则。[不针对nat 和 mangle]
其中各个占位符的取值为:
1.table : filter [-t 指定操作的表]
2.chain : INPUT OUTPUT [-AI 指定操作的链]
3.interface :自己的网络接口[可以通过 {ip a
} 获得] [-io 注意这个是两个参数i/o 指定进出的网络接口]
4.protocol : tcp udp[-p 指定协议]
5.source :源ip [-s]
6.destination :目的ip[作为转发功能时,直接作为服务器应该用不到] [-d]
7.range :端口的范围{比如 1234:4321 表示1234端口到4321端口}[--sport/--dport]
8.action : ACCEPT/REJECT/DROP[-j 指定这条规则的动作,接受/拒绝/丢弃]
————————————————
版权声明:本文为CSDN博主「Greetlist」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nia305/article/details/79018352
可以通过“netstat -anp | grep 9000”命令查看该端口的监听地址:
[zhu@hadoop log]$ netstat -anp | grep 9000
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 ::ffff:127.0.0.1:9000 :::* LISTEN 6614/java
tcp 0 0 ::ffff:127.0.0.1:46722 ::ffff:127.0.0.1:9000 TIME_WAIT -
tcp 0 0 ::ffff:127.0.0.1:46729 ::ffff:127.0.0.1:9000 TIME_WAIT -
tcp 0 0 ::ffff:127.0.0.1:46723 ::ffff:127.0.0.1:9000 ESTABLISHED 6733/java
tcp 0 0 ::ffff:127.0.0.1:46726 ::ffff:127.0.0.1:9000 TIME_WAIT -
tcp 0 0 ::ffff:127.0.0.1:46730 ::ffff:127.0.0.1:9000 ESTABLISHED 6976/java
tcp 0 0 ::ffff:127.0.0.1:9000 ::ffff:127.0.0.1:46730 ESTABLISHED 6614/java
tcp 0 0 ::ffff:127.0.0.1:9000 ::ffff:127.0.0.1:46723 ESTABLISHED 6614/java
有上图可知,9000端口监听的地址为本地地址(127.0.0.1)
解决方法:
如果防火墙过滤了访问该端口的请求则设置过滤规则,放行该端口或者关闭防火墙
如果监听地址为本机地址则修改其监听地址为真是ip地址(如192.168.8.119)。
比如在hadoop中,可以更改本机地址(eg:localhost——>hadoop),然后在/etc/hosts配置文件中加入主机hadoop和ip 192.168.8.119的映射关系,然后修改core-site.xml中fs.default.name的值为"hdfs://hadoop:9000"。
总结:
1、先从A服务器(telnet IP 端口)这样测试B服务器的端口,发现访问被拒绝
2、查看B服务器的该端口是否有服务(netstat -apn|grep 该端口)
3、如果没有服务,则启动该端口上的服务,如果有,则查看该服务的监听IP
上图说明该服务的监听IP是所有IP
上图说明该服务的监听IP是本地IP,所以会拒绝其他IP访问
4、如果监听IP是本地IP,则需要配置监听IP为A服务器的IP,这样A服务器才能正常访问B服务器该服务及端口
转一个小小的参考示例
https://blog.csdn.net/vonzhoufz/article/details/20389991
网友评论