目录

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

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

安装nginx

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

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

yum install nginx

配置文件

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

1
ps -ef|grep nginx

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

1
whereis nginx

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

1
find / -name nginx.conf

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

1
nginx -c /etc/nginx/nginx.conf

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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,然后查看是否成功启动

1
2
3
systemctl start nginx
#service nginx start
ps -ef|grep nginx
端口被占用问题

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

1
netstat -ntlp
防火墙未开启相关端口

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

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

1
firewall-cmd --state

如果有开启防火墙,查看下你配置的端口是否已经放开放了

1
firewall-cmd --list-ports

如果没有开放,添加对应的端口,然后重启防火墙,假如你要开放的端口是8888,命令如下

1
2
3
firewall-cmd --zone=public --add-port=8888/tcp --permanent #要加--permanent,表示永久开放,要不然重启防火墙后会消失
firewall-cmd --reload
firewall-cmd --list-ports
阿里云服务器安全组件未配置端口

如果启动nginx的时候错误内容有端口被占用的情况,可以看看目前端口的占用情况,修改配置文件选取一个没有用到的端口 如果上面的问题都解决了,但是还是访问不了,且你的服务器是阿里云服务器,是阿里云服务器管理后台对实例的服务器有个安全配置的,解决步骤如下:

1 . 登陆阿里云服务器

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

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

4 . 点击配置规则

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