通过ip + 端口访问华为云服务器

547 阅读2分钟

一、前言


新购入一台华为云服务器,丢了一个项目上去想要通过ip+端口号的形式访问,结果总是无法访问,疑惑中。。。

二、 排查过程汇总


  1. 首先反应是nginx的问题,验证不是
  2. 其次判断是云服务器端口开放的问题,验证存在问题,但是开放端口后并未生效
  3. 最后判断是服务器的防火墙问题,关闭防火墙后,访问成功

三、详细过程


1. 判断nginx配置问题

远程登录云服务器,通过本机访问,正常返回结果,说明nginx配置正确

image.png

简单说明一下nginx相关配置

一般web访问的server不在nginx.conf文件中配置,而是在nginx.conf中写入include vhosts/*.conf;,用于引入nginx.conf同级目录vhosts下的conf文件进行站点配置 例如:

image.png

一般的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端口

image.png

image.png

image.png

各云服务器平台界面不太一样,但是应该都有安全组配置

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