记一次阿里云服务器的防火墙天坑

简介个人博客,用来做什么?我刚开始就把它当做一个我吐槽心情的地方,也就相当于一个网络记事本,写上一些关于自己生活工作中的小情小事,也会放上一些照片,音乐。每天工作回家后就能访问自己的网站,一边听着音乐,一边写写文章,回想之前踩过的坑。

之前换了阿里云服务器,新服务器就装了apache,默认给了80端口。最近要学习laravel,准备装个nginx结果装了好久才搞定,最后才发现是阿里云服务器后台安全组件的锅。下面分享下nginx配置和使用常遇到的问题,希望能帮到一些遇到类似情况的童鞋。


安装nginx

我的服务器是centos 7的,所以要先安装相关的源再安装

rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm

yum install nginx


配置文件

安装完后可以查看下nginx开启了没有,默认是没有开启的

ps -ef|grep nginx

然后看下nginx被安装在哪里,默认的话是放在/etc/nginx中

whereis nginx

或者直接查看下nginx的配置文件放哪边

find / -name nginx.conf

由于/etc/nginx/conf.d/下面有个default.conf默认配置文件,为了保证不受它影响,指定nginx的配置文件

nginx -c /etc/nginx/nginx.conf

修改配置文件大致如下,具体看需求

server
    {
        listen 8888 default_server; # 设置访问端口
        #listen [::]:8888 default_server ipv6only=on;
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot; #设置默认访问目录

        location / {
            root   /home/wwwroot;
            index  index.html index.htm;
        }

    }

启动nginx,然后查看是否成功启动

systemctl start nginx
#service nginx start
ps -ef|grep nginx


端口被占用问题

如果启动nginx的时候错误内容有端口被占用的情况,可以看看目前端口的占用情况,修改配置文件选取一个没有用到的端口

netstat -ntlp


防火墙未开启相关端口

如果nginx能够正常启动,但是在访问的时候浏览器报错“链接超时,请检查代理或者防火墙的情况”,先检查防火墙是否有开启。我的服务器是centos7,所以用到的命令是firewall的,如下

firewall-cmd --state
  • 如果有开启防火墙,查看下你配置的端口是否已经放开放了
firewall-cmd --list-ports
  • 如果没有开放,添加对应的端口,然后重启防火墙,假如你要开放的端口是8888,命令如下
firewall-cmd --zone=public --add-port=8888/tcp --permanent #要加--permanent,表示永久开放,要不然重启防火墙后会消失
firewall-cmd --reload
firewall-cmd --list-ports


阿里云服务器安全组件未配置端口

如果上面的问题都解决了,但是还是访问不了,且你的服务器是阿里云服务器,是阿里云服务器管理后台对实例的服务器有个安全配置的,解决步骤如下:

1 . 登陆阿里云服务器

2 . 在左侧菜单选择“云服务器ECS”,然后在面板点击你服务器(PS:鼠标有时候指向对应服务器的时候可能没出现可点击的样式,实际上是可以点击的。。。)

3 . 在操作选项那里点击“更多”,选取“网络和安全组”-“安全组配置”

4 . 点击配置规则

5 . 点击右上角的“添加安全组规则”,协议类型选择“自定义TCP”,授权对象默认填写“0.0.0.0/0”,端口里面要写的就是你开放的端口

Top