目前云数据库Memcache是需要通过ECS的内网进行连接访问,如果用户本地需要通过公网访问云数据库Memcache,可以在ECS Windows云服务器中通过netsh进行端口映射实现。
一、搭建要求:
1、阿里云有OCS实例
2、阿里云有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的访问地址,端口,账号和 使用命令: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>