通过公网连接云数据库Memcache--ECS Windows篇

时间:2022-06-01 20:36:52

目前云数据库Memcache是需要通过ECS的内网进行连接访问,如果用户本地需要通过公网访问云数据库Memcache,可以在ECS Windows云服务器中通过netsh进行端口映射实现。

一、搭建要求: 
1、阿里云有OCS实例 
2、阿里云有ECS服务器 
3、OCS跟ECS在同一个账号下,可以内网访问 
 
二、实验环境(IP和账号为假的): 
服务器版本:Windows Server 2008 R2 Standard Service Pack1(64位) 
服务器公网IP地址:115.99.190.68 
OCS内网地址:6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com 
OCS访问账号:6aecb9ba8378863e4 
OCS访问端口:11211

在cmd命令行中执行如下命令: 
1、添加端口映射 
     netsh interface portproxy add v4tov4 listenaddress=115.99.190.68 listenport=11211 connectaddress=6aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com connectport=11211 
   你在自己服务器上执行命令的时候,把监听的公网地址listenaddress,监听端口listenport,改成自己对应的公网地址,把连接地址connectaddress改成自己OCS的内网访问地址,connectport端口也改成自己OCS的连接端口即可。 
    通过以上命令,所有发往服务器115.99.190.68,端口11211的数据都会转发到映射的服务器和端口上。 
 
    在本地开发调试的时候,直接指定OCS的访问地址,端口,账号和密码使用就可以了,能方便的调试使用OCS的功能,便于查找错误,在发布到服务器以后,也不需要修改程序的配置,更不需要在本地安装Memcached相关的软件,保证开发的环境跟上线的环境一致。 
 
 
3、如果你开发调试完成了,记得在服务器上删除相关的映射 
    删除映射,使用命令:netsh interface portproxy delete v4tov4 listenaddress=115.99.190.68 listenport=11211 
    IP地址,换成自己映射时的IP地址就可以了。 
 
 
4、查看已经映射的端口 
     使用命令:netsh interface portproxy show all

四、自己服务器的防火墙:11211端口记得加上,开启起来。

五、更改Web.Config里面配置

<memcacheddebug protocol="Binary">
<servers>
<add address="aecb9ba8378863e4.m.cnhzaliqshpub001.ocs.aliyuncs.com" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="200" connectionTimeout="00:00:4" deadTimeout="00:02:00" />
<authentication type="Enyim.Caching.Memcached.PlainTextAuthenticator, Enyim.Caching" zone="" userName="12123131" password="123131" />
</memcacheddebug>

改成如下

<memcacheddebug protocol="Binary">
<servers>
<add address="115.99.190.68" port="11211" />
</servers>
<socketPool minPoolSize="10" maxPoolSize="200" connectionTimeout="00:00:4" deadTimeout="00:02:00" />
<authentication type="Enyim.Caching.Memcached.PlainTextAuthenticator, Enyim.Caching" zone="" userName="12123131" password="123131" />
</memcacheddebug>