windwos iis http跳转https

作者:站长 发布于:2020-10-29 19:45 Thursday 分类:随笔录

最近接到一个客户的新需求,就是把网站http的跳转到https下,需要进行路径匹配。

服务器系统是 Windows Server 2016  IIS 10 的环境。

一开始是所有非http的访问,全部跳转到 https的根下,由于这个操作,导致有部分外接的业务异常了,所以需要做路径匹配。

解决方案也相对简单,网上也有多种做法,我就说下我的做法:

首先给iis服务器安装 URl_Rewrite  工具,这个iis默认是不安装的,需要单独安装,自行根据当前系统来选择安装。

安装好工具之后,就给对应的网站添加一个web.config文件,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

win 减少time_wait的时间,提高端口使用频率

作者:站长 发布于:2020-10-23 11:28 Friday 分类:随笔录

昨天在一台windwos Server下部署的网站,频繁出现数据库连接不上。

程序和数据库是分离再不同的Server.采用内网进行连接。一开始以为是因为数据库压力过大,去检查数据库所在的服务器发现并不是这个问题,并且数据库当前的进程也很低,连接数也不高,所以先排除了这个问题。

接着就回去看我部署程序的机器,一顿排查,依旧没发现问题,于是我就先关闭了部分的业务,发现部分业务关闭了之后,情况好转了,于是就在程序里面添加了一条 重连数据库的操作进去。填写好了之后开启刚刚关闭的业务,发现不一会问题依旧没得到解决。

 

我在程序服务器的命令行执行  netstat -an  > tcp.txt 打印出了当前服务器在用的端口协议情况,反复了几次这个操作,发现去连接数据库服务器最大端口就是在5000,没有在高的了。看到这个情况之后就怀疑是不是端口数量不够,然后导致数据库连接不上,测试我关闭了部分业务就降低了连接次数,所以正常了,业务全部开启,连接数数据库的次数就提高了,最终因为端口不足,导致无法连接上数据库,所以报错了。

锁定这个问题之后,解决方案就好找了。只要开放更多端口就好了,同时把端口等待时间从默认的240秒缩短到30秒,提高端口的重复使用率即可

于是百度一顿搜索更重答案教程都有。众说纷纭。下面是我自己的做法:

打开服务器注册表进行修改,然后重启服务器。修改内容如下:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

新建一个Dword值,名称为:MaxUserPort  数据用二进制输入:50000(最高不超过65536),这个启用更多端口

在新建一个Dword值,名称为:TcpTimeWaitDelay 数据用二进制输入:30,这个是用来减少time_wait的时间,单位秒.

修改了注册表之后,重启服务器。

重启完成之后再neistat -an 看下当前的链接端口就可以看到效果了。

标签: time_wait

出现ERR_SSL_PROTOCOL_ERROR如何解决

作者:站长 发布于:2020-10-16 16:32 Friday 分类:linux

今天在我自己的Nginx部署证书,发现一个奇怪的事情,同样的配置文件,有的服务器可以正常跑起来,有的却不行。

自己调试了一波,发现还是不行,于是就在网上找原因。

有人说是跟Nginx的版本有关系,于是我第一时间去查看我的Nginx版本。发现的确是不一样的版本。

在Nginx1.15版本之前,我的配置HTTPS服务是如下这样配置的。

 

server {
    listen       443;
    server_name  zqsctjt.com www.zqsctjt.com;

     ssl                  on;
     ssl_certificate      /nginx/conf/ssl/abc.com.crt;
     ssl_certificate_key  /nginx/conf/ssl/abc.com.key;

    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

但是这个配置方式到了Nginx 1.15之后的版本就不适用了,配置上去之后,重启Nginx是不会报错的,但是在访问域名的时候,chrome浏览器会提示:ERR_SSL_PROTOCOL_ERROR 错误。

在网上找了一下资料,是说没有开启ssl配置的模块。
只要将上面的配置文件修改一下就好,改成下面的配置方式:
server {
    listen       443 ssl;
    server_name  zqsctjt.com www.zqsctjt.com;

     ssl_certificate      /nginx/conf/ssl/abc.com.crt;
     ssl_certificate_key  /nginx/conf/ssl/abc.com.key;

    ssl_session_timeout  5m;

    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;


Powered by emlog 本站由耐思智慧提供计算服务