配置服务器时候发现的问题,真的是搜肠刮肚的找答案,找一下午,终于找到了答案。

一、开始找原因

在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx 
我这里是浏览器访问失败, 
查找原因:

1、在服务器上访问Ip

执行:curl http://ip 
结果:超时,未连接成功

查看nginxaccess.log日志,发现日志未滚动,代表本机访问不到公网ip

2、确认网络是否可达

telnet 12x.xx.x.xx 80
Trying 12x.xx.x.xx...
Connected to 12x.xx.x.xx.
Escape character is '^]'.
  • 1
  • 2
  • 3
  • 4

这样就说明网络上可达,并且TCP三次握手可以完成,因为能telnet通,排除了网络不通的情况 
但是我本地的网络不通。

3、是否受防火墙安全控制等。

将iptables和selinux关闭 
以下4条命令清除iptables的配置

iptables -F
iptables -F -t nat
iptables -X
iptables -X -t nat
  • 1
  • 2
  • 3
  • 4

setenforce 0 #关闭selinux 
重新远程访问,还是失败。说明不是防火墙的原因。这里因为我是debian,所以默认是没有开启防火墙的,所以不是这个原因。

4、去/var/log/nginx/error.log查看错误日志

日志报错:Address already in use 
这里就已经确认错误在哪了,原来是80端口被占用的问题。

5、解决方案

1)执行:lsof -i:80 查看此时哪个进程正在使用80端口 
我这边发现是阿里云盾正在使用80端口

2)杀掉云盾进程,重启nginx试试 
kill -s 9 pid 
具体参考博客:http://blog.csdn.net/ljfphp/article/details/78666376

6、好吧,惊奇的发现,通过浏览器还是访问不了nginx,但是此刻我的80端口已经被nginx监听了。继续查看错误日志。错误日志并没刷新。

7、百度发现有人说是iptables防火墙的原因,但是debian系统的安装默认是没有iptables,所以应该不是防火墙的原因。

8、看到有人说,是没有备案域名的原因,80端口默认是关闭状态。好吧,我准备改成8080端口,看看能不能行吧。(这个没来得及试)

二、真正的凶手

终于找到问题了,眼泪差点掉下来。原来是阿里云的问题。我刚开通的服务器,没有设置安全组规则。下面给大家演示一下安全组怎么设置。 
1、进入云服务控制台

2、找到安全组,点击进入 
 
3、在默认的一个安全组上,有一个配置规则按钮。点击配置规则 
 
4、这是我原来的安全组规则,没有http的

5、按照如图所示添加

6、浏览器访问ip成功 

nginx公网IP无法访问浏览器的更多相关文章

  1. 阿里云服务器 nginx 公网 IP 无法访问 浏览器

    配置完成 nginx 后, 在浏览器输入:http://ip,正常的话,会有页面,welcome to nginx但是浏览器显示访问失败 主要从两个方面找原因,一个是阿里云的安全组和服务器的防火墙是否 ...

  2. 设置nginx禁止IP直接访问,只能通过指定的域名访问

    nginx的版本是1.2.1. 设置配置文件disableip.conf: server {     listen 80;     server_name _;     return500; } 这是 ...

  3. 服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)

    出现问题 这几天我网站已经部署到vps上,域名也备好案,想使用域名指向我们公网ip.指完发现用域名访问不了网站,但是公网ip可以.于是看了网上资料,好像是要清除浏览器DNS缓存,我清完没用.然后发现我 ...

  4. Nginx禁止IP直接访问网站

    禁止别人直接通过IP访问网站,在nginx的server配置文件前面加上如下的配置,如果有通过IP直接访问的,直接拒绝连接(需要去掉别的server下的default_server). server ...

  5. nginx禁止ip直接访问

    编辑一个noIp.conf放到虚拟目录中 server { listen default; server_name _; rewrite ^ http://www.xxxx.com/; } 其中 ww ...

  6. nginx根据IP限制访问

    nginx有两个模块可以控制访问 HttpLimitZoneModule    限制同时并发访问的数量 HttpLimitReqModule     限制访问数据,每秒内最多几个请求 http{ ## ...

  7. nginx 设置ip地址访问,但是设置域名访问不了

    一.导语 在Nginx的设置过程中,ip地址能正常访问的,但是把ip地址转换成域名,就访问不了了,这个是怎么回事呢?今天来探讨一下 二.设置ip地址做负载均衡 2.1.server端 server { ...

  8. nginx 限制ip/限制访问路径

    一.多站点统一限IP vim nginx.conf allow 127.0.0.1; deny all; # 以上代码解释: # deny all; 限制所有的ip # allow ip; 除了 这个 ...

  9. Nginx 使用IP限制访问来源

    在 server {... 下, 或者在 location xxx {... 下, 都可以添加如下的IP访问限制 allow 10.57.22.172; allow ; allow ; allow ; ...

随机推荐

  1. leetcode868

    class Solution { public: int binaryGap(int N) { ; vector<int> V; while (N) { )//N&1==1,表示最 ...

  2. PYTHON 中的字符集

    一.前言 Python中的字符编码是个老生常谈的话题,今天来梳理一下相关知识,希望给其他人些许帮助. Python2的 默认编码 是ASCII,不能识别中文字符,需要显式指定字符编码:Python3的 ...

  3. 每天一个Linux命令 - 【groupadd】

    [命令]:grouadd [语法]:groupadd [选项]   [参数] [功能介绍]:groupadd 命令勇于创建新的工作组,新工作组的信息将被添加的系统文件中. [选项说明]: -g < ...

  4. python数据字典的操作

    一.什么是字典? 字典是Python语言中唯一的映射类型. 映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表. 字典对象是可变的,它是一个容器 ...

  5. sql合并列

    oralce写法: select WM_CONCAT(A.title) as citys from tmpcity A sql server写法: select stuff((select ','+A ...

  6. json和pickle序列化模块

    一.json序列化模块 1.序列化:将内存数据转成字符串加以保存. 2.反序列化:将字符串转成内存数据加以读取. data = { '北京':{ '五道口':{ 'sohu':'引擎', } } } ...

  7. selenium2 用testNG对百度首页输入框进行测试 (三)

    如果还没有安装testNG的亲,可以点击http://www.cnblogs.com/milanmi/p/4346580.html查看安装过程. 这节主要是对百度首页的输入框进行输入测试. packa ...

  8. 基于PCL的屏幕选点、框选点云、单点选取

    1. 单点选取 #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> #include <pcl/point_t ...

  9. vue父子通信

    首先在组件创建中创建子组件Todos.vue <template> <div class="hello"> <h1>todos show< ...

  10. hrabs的数据库session的修改

    using System;using System.Data;using System.Collections;using System.Collections.Generic;using Syste ...