一、前言
新购入一台华为云服务器,丢了一个项目上去想要通过ip+端口号的形式访问,结果总是无法访问,疑惑中。。。
二、 排查过程汇总
- 首先反应是nginx的问题,验证不是
- 其次判断是云服务器端口开放的问题,验证存在问题,但是开放端口后并未生效
- 最后判断是服务器的防火墙问题,关闭防火墙后,访问成功
三、详细过程
1. 判断nginx配置问题
远程登录云服务器,通过本机访问,正常返回结果,说明nginx配置正确
简单说明一下nginx相关配置
一般web访问的server不在nginx.conf文件中配置,而是在nginx.conf中写入include vhosts/*.conf;,用于引入nginx.conf同级目录vhosts下的conf文件进行站点配置
例如:
一般的server配置
server {
listen 80;
server_name 127.0.0.1;
root "/Users/tmp/wep";
location / {
index index.php index.html error/index.html;
}
location ~ \.php(.*)$ {#php需要,如单独的前端页面不需要这部分
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^((?U).+\.php)(/?.+)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
include fastcgi_params;
}
}
2.判断是云服务器的端口没有开放
登录云服务器后台,查看安全组配置,确实没有开放80端口
各云服务器平台界面不太一样,但是应该都有安全组配置
3.关闭服务器的防火墙
开放80端口以后,仍然无法访问,此时猜测是服务器防火墙的问题,关闭防火墙后,网站可以正常访问
#防火墙常用的命令
1、查看防火墙的状态 (dead代表关闭 running代表已经开启)
systemctl status firewalld
2、查看防火墙所有开放的端口
firewall-cmd --list-ports
3、开启防火墙
systemctl start firewalld
4、开放指定端口号(同时注意要在云服务器开放端口)
firewall-cmd --permanent --add-port=80/tcp
5、重启防火墙
firewall-cmd --reload
6、关闭防火墙
systemctl stop firewalld.service