nginx https配置后无法访问,可能防火墙在捣鬼
同事发现nginx配置后https 无法访问,我帮忙解决的时候从以下出发点
1.防火墙未开放443端口
2.配置出错
- 1
- 2
- 3
于是就 netstat -anp 查看防火墙开的端口
发现已经在监听了,那肯定是配置问题。
检查配置没问题,重新生成证书等方法也还是无法访问,甚至在别的机器上https的配置copy过来依然无法访问
冷静下来想想,nginx都没有返回状态吗,直接无法连接。这到底请求到了吗?
只能进入防火墙配置文件看看了
vim /etc/sysconfig/iptables
问题就在这里了,开放端口一定要在
-A INPUT -j REJECT –reject-with icmp-host-prohibited
这句的前面,的前面,的前面!!!
因为顺序执行的原因,放在后面的规则就无效了,网上通常会看到这么一句话
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面
原因是这条规则的作用是拒绝所有-j REJECT 在iptables帮助文档里面有一下说明This is used to send back an error packet in response to the matched packet
就是表明拒绝你,并返回一个错误连接信息。请求没到nginx那,肯定没有状态码返回,同时你的浏览器返回的只能是无法连接。
总结
被netstat -anp 出来的内容欺骗了,规则是添加了,但是没起效果。
如果返回404,403等等,那说明是nginx的配置等因素;
如果无法连接,通常是防火墙,或者nginx为启动等可能的因素;
冷静分析问题,查看错误信息,才是解决问题的办法,万万不能try stuff until it works,那样只能是无用功。
nginx https配置后无法访问,可能防火墙在捣鬼的更多相关文章
- nginx https 配置样例
站点nginx https 配置模板 第一章 nginx 支持https 配置样例 其他 相关链接地址 第一章 nginx 支持https 配置样例 说明:https 段配置参数说明 Server 段 ...
- Nginx搭建成功后,无法访问Tomcat问题
一.nginx搭建好后无法访问后端Tomcat项目 通过项目名称过滤的方式访问Tomcat,比如项目名称叫easy. 修改其server下的location目录,配置如下: server { #监听的 ...
- nginx+php-fpm配置后页面显示空白的解决方法以及用nginx和php-fpm解决“502 Bad Gateway”问题
For reference, I am attaching my location block for catching files with the .php extension: location ...
- Ubuntu Nginx https 配置
#配置http跳转到https 80跳转443server { listen ; server_name www.***.com www.***.cn; https://$server_name$re ...
- ingress nginx https配置
3.https配置第一步:制作自签证书 [root@master demo]# openssl genrsa -out tls.key 2048 [root@master demo]# openssl ...
- NGINX安全配置和限制访问
说起网络攻击,可能很多人只知道大名鼎鼎的DDOS攻击,这种攻击廉价且效果出众,直接通过第四层网络协议用他的带宽把你的带宽顶掉,造成网路阻塞,防不胜防,就连腾讯这种大鳄公司也被大流量DDOS搞过焦头烂额 ...
- Nginx Https配置不带www跳转www
把 morethink.cn和www.morethink.cn合并到一个server上去,使用301永久重定向. 然后将 https://morethink.cn 转到 https://www.mor ...
- nginx 配置后页面访问是报500错
该问题是html文件权限问题. 用jenkins 并远程服务器上传到另一台服务器的html ,在配置好nginx 的location root 绝对位置后还是报错500 手工用root上传时访问正常 ...
- nginx https配置——Let's Encrypt 部署和维护
let's encrypt Let's Encrypt 的最大贡献是它的 ACME 协议,第一份全自动服务器身份验证协议,以及配套的基础设施和客户端.这是为了解决一直以来 HTTPS TLS X.50 ...
随机推荐
- PHP 判断Header 送出前, 是否有值被送出去: headers_sent()
1 为避免header()函数是,出现 <b>Warning</b>: Cannot modify header information - headers already ...
- 第五章:Python基础の生成器、迭代器、序列化和虚拟环境的应用
本课主题 生成器介紹和操作实战 迭代器介紹和操作实战 序例化和反序例化 Json 和 Pickle 操作实战 字符串格式化的应用 创建虚拟环境实战 本周作业 生成器介紹和操作实战 什么是生成器,生成器 ...
- C# 读取系统日志
.NET框架类库提供了EventLog类和EventLogEntry类与系统日志进行交互二者属于System.Diagnostics命名空间 EventLog 类的属性主要有 Entris返回一个Ev ...
- 更新Appium中的WebDriverAgent
到WebDriverAgent下载最新版本的WebDriverAgent 进入下载后的WebDriverAgent文件 执行 ./Scripts/bootstrap.sh 直接用Xcode打开WebD ...
- Dagoin之modelform组件
ModelForm a. class Meta: model, # 对应Model的 fields=None, # 字段 exclude=None, # 排除字段 labels=None, # 提 ...
- 认证客户端的链接与socketserver实现并发
from socket import * import hmac,os secret_key=b'linhaifeng bang bang bang' def conn_auth(conn): ''' ...
- js调取本地可执行文件exe
通过ie支持的activex控件来读取文程序的安装路径,从而调用本地exe文件 function callExe () { try{ var command; var shell = new Acti ...
- SQL Server-聚焦WHERE Column=@Param OR @Param IS NULL有问题?
前言 上一篇我们讲完SQL动态查询,本节我们继续来讲解SQL动态查询中存在的问题. SQL动态查询条件筛选过滤 当我们创建存储过程调用存储过程时,若筛选条件有值则过滤,没有值则返回所行记录,类似如下查 ...
- C语到C++注释转换小项目
可将其分为下面四个状态进行讨论即可: #include<stdio.h> #include<windows.h> #define INPUTFILE "input.c ...
- Repair MySQL 5.6 GTID replication by injecting empty transactions
Since SQL_SLAVE_SKIP_COUNTER doesn’t work with GTID we need to find a way to ignore that transaction ...