<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; aws代维</title>
	<atom:link href="https://www.fuwuqiok.com/tag/aws%e4%bb%a3%e7%bb%b4/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>阿里云Docker 镜像服务</title>
		<link>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/</link>
		<comments>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/#comments</comments>
		<pubDate>Tue, 01 Dec 2015 13:52:58 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[aws服务器代维]]></category>
		<category><![CDATA[Docker 镜像服务]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2759</guid>
		<description><![CDATA[<p>专为阿里云GPU物理机定制的深度学习和HPC工具集，在阿里云Docker Hub上发布。 1 阿里云官方Doc [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/">阿里云Docker 镜像服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>专为阿里云GPU物理机定制的深度学习和HPC工具集，在阿里云Docker Hub上发布。</p>
<h3 id="1-docker-hub-">1 阿里云官方Docker Hub地址</h3>
<p><a href="http://dev.aliyun.com/search.html?spm=5176.100208.8.1.a8hURy" data-spm-anchor-id="5176.100208.8.1">http://dev.aliyun.com/search.html</a></p>
<h3 id="2-">2 新用户</h3>
<p>第一次使用阿里云Docker服务，用户需要先注册成为开发者，步骤如下：</p>
<p>打开上面的阿里云Docker Hub，未登陆的，先使用云账号登录，登录/注册在左上角； 点击右上角“管理中心”，如下图：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_login.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_login.jpg" alt="dockerhub_login" width="1249" height="123" /></a></p>
<p>对新用户会弹出去注册开发者的页面：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_sign.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_sign.jpg" alt="dockerhub_sign" width="1227" height="263" /></a></p>
<p>注册成功之后，点击“进入管理控制台”，下次进入也可以在Docker Hub页面，点击右上角“管理中心”进入。界面如下：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_panel.jpg"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/12/dockerhub_panel.jpg" alt="dockerhub_panel" width="353" height="404" /></a></p>
<p>选择左侧的“Docker服务”下面的“镜像管理”标签，新用户会提示设置自己的镜像仓库“命名空间”和密码。命名空间是私人镜像的地址前缀。完成设置之后，可以开始使用阿里云Docker仓库。</p>
<h3 id="3-docker">3 使用 Docker</h3>
<h4 id="3-1-docker-">3.1 docker 仓库地址</h4>
<p>阿里云官方docker仓库地址为：</p>
<pre><code>registry.aliyuncs.com（公网)
</code></pre>
<p>在GPU物理机上，对应替换为内网地址：</p>
<pre><code>registry-internal.aliyuncs.com（内网）
</code></pre>
<h4 id="3-2-hello-world">3.2 运行 Hello World</h4>
<p>（GPU物理机预装CentOS 7系统，以下操作仅以CentOS 7为例，且使用root用户） 首先检查机器上安装的docker服务状态：</p>
<p><code># docker info</code></p>
<p>正常会显示当前存储空间等信息。如果出错，请先尝试重启docker服务：</p>
<p><code># systemctl restart docker</code></p>
<p>下一步，使用阿里云账号和之前设定的docker仓库密码，登录阿里云docker仓库：</p>
<p><code># docker login registry-internal.aliyuncs.com</code></p>
<p>运行 Hello World：</p>
<p><code># docker run registry-internal.aliyuncs.com/alicloudhpc/hello-world</code></p>
<p>如果一切正常，说明机器的docker服务运行正常。</p>
<h4 id="3-3-hpc-">3.3 使用深度学习和HPC工具集</h4>
<p>工具集的发布地址是：</p>
<p><a href="http://dev.aliyun.com/detail.html?spm=5176.100208.8.2.a8hURy&amp;repoId=2" data-spm-anchor-id="5176.100208.8.2">http://dev.aliyun.com/detail.html?repoId=2</a></p>
<p>列出了包含的软件工具和简介。</p>
<p>登录之后，可以下载toolkit的镜像到本地：</p>
<p><code># docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit</code></p>
<p>重命名一个短名称：</p>
<p><code># docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit</code></p>
<p>因为需要在docker容器中使用gpu设备，启动docker容器需要设定额外参数。推荐将如下内容保存到一个shell脚本（比如run-toolkit.sh），方便以后运行：</p>
<pre><code class="lang-sh">#!/bin/bash
DOCKER_BIN="/usr/bin/docker"
INTERACT="-ti"
#INTERACT="-d"
DATA_VOLUME="/disk1"
DATA_MOUNT_POINT="/disk1"
MEM_LIMIT=96g

set -e
if [ $# -lt 2 ]; then
    echo "Usage: $0 image command"
    exit -1
else
    IMAGE=$1
    shift 1
    CMD=$@
fi

devices=$(ls -1 /dev | grep nvidia)
dev_param=""
for d in $devices; do
    dev_param="$dev_param --device=/dev/$d"
done

time_param='-v /etc/localtime:/etc/localtime:ro'

if [ ! -z "$CUDA_VISIBLE_DEVICES" ]; then
    dev_env="-e CUDA_VISIBLE_DEVICES=$CUDA_VISIBLE_DEVICES"
else
    dev_env=""
fi

exec $DOCKER_BIN run \
        "$INTERACT" \
        -P \
        $dev_env \
        $dev_param \
        $time_param \
        -m $MEM_LIMIT \
        -v $DATA_VOLUME:$DATA_MOUNT_POINT \
        "$IMAGE" \
        $CMD
</code></pre>
<p>运行脚本，启动toolkit：</p>
<pre><code class="lang-sh"># chmod +x run-toolkit.sh
# ./run-toolkit.sh  toolkit  /bin/bash
</code></pre>
<p>成功运行之后，已经进入交互式的docker容器（理解为一个与host隔离的运行环境）中，物理机上的 /disk1 磁盘映射到容器内的 /disk1 文件夹，建议数据只存储到 /disk1 下（如果容器销毁，其他数据不会保留）。</p>
<p>检查GPU工作正常：</p>
<p><code># /usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery</code></p>
<p>检查通过以后，您可以像普通终端一样，运行软件。</p>
<h4 id="3-4-">3.4 重新进入</h4>
<p>在交互式docker容器中，如果您运行 exit，退出docker容器之后，该容器即停止。如果您在容器中修改了 /disk1 以外的内容（比如安装软件），下次还需要继续使用，则不应该运行 run-toolkit.sh 新建容器，而是重启原先的，操作如下：</p>
<p>查询已经停止的容器id：</p>
<p><code># docker ps -a</code></p>
<p>返回结果中，复制下需要重启的容器的 container_id</p>
<p>重启容器：</p>
<p><code># docker start container_id</code></p>
<p>成功则返回一串重复的id</p>
<p>重新进入交互式docker容器：</p>
<p><code># docker attatch container_id</code></p>
<h3 id="4-">4. 使用进阶</h3>
<h4 id="4-1-">4.1 获得更新</h4>
<p>如果toolkit发布新的版本，可以重新pull获得更新：</p>
<p><code># docker pull registry-internal.aliyuncs.com/alicloudhpc/toolkit</code></p>
<p>重命名一个短名称：</p>
<p><code># docker tag registry-internal.aliyuncs.com/alicloudhpc/toolkit toolkit</code></p>
<h4 id="4-2-">4.2 创建私有镜像</h4>
<p>访问阿里云docker控制台：</p>
<p><a href="http://console.d.aliyun.com/index2.html/?spm=5176.100208.8.3.a8hURy#/docker/image/list" data-spm-anchor-id="5176.100208.8.3">http://console.d.aliyun.com/index2.html/?#/docker/image/list</a></p>
<p>可以创建自己的私有镜像（选择本地仓库）。</p>
<p>使用和创建本地镜像的方法，可以参考docker官方文档相关部分：</p>
<p><a href="http://docs.docker.com/userguide/dockerimages?spm=5176.100208.8.4.a8hURy" data-spm-anchor-id="5176.100208.8.4">http://docs.docker.com/userguide/dockerimages</a></p>
<p>另外有一份中文教程：<a href="http://www.docker.org.cn/book/docker.html?spm=5176.100208.8.5.a8hURy" data-spm-anchor-id="5176.100208.8.5">http://www.docker.org.cn/book/docker.html</a> （有些过时） 注意内网环境下，添加或者替换docker仓库的域名。</p>
<p>本地镜像创建完成后，通过docker push上传到阿里云docker仓库：</p>
<pre><code class="lang-sh"># docker tag some-image registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
# docker push registry-internal.aliyuncs.com/YOUR_NAMESPCE/YOUR_REPO
</code></pre>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/">阿里云Docker 镜像服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e9%98%bf%e9%87%8c%e4%ba%91docker-%e9%95%9c%e5%83%8f%e6%9c%8d%e5%8a%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>对比linux负载均衡haproxy，slb以及node-slb</title>
		<link>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/</link>
		<comments>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/#comments</comments>
		<pubDate>Sat, 15 Aug 2015 04:57:19 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[网站代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[haproxy]]></category>
		<category><![CDATA[node-slb]]></category>
		<category><![CDATA[slb]]></category>
		<category><![CDATA[对比linux负载均衡]]></category>
		<category><![CDATA[对比linux负载均衡haproxy，slb以及node-slb]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2579</guid>
		<description><![CDATA[<p>今天遇到一客户的线上环境是阿里云，使用的是阿里云有SLB，但客户想自己做负载器，，本文试图以haproxy来解 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/">对比linux负载均衡haproxy，slb以及node-slb</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>今天遇到一客户的线上环境是阿里云，使用的是阿里云有SLB，但客户想自己做负载器，，本文试图以haproxy来解释一下slb的原理</p>
<p>讲解haproxy的目的是介绍负载算法，便于理解SLB，最后给出node-slb解决方案</p>
<h2>目前比较流行的</h2>
<p>目前，在线上环境中应用较多的负载均衡器硬件有F5 BIG-IP,软件有LVS，Nginx及HAProxy,高可用软件有Heartbeat. Keepalived</p>
<p>成熟的架构有</p>
<ul>
<li>LVS+Keepalived</li>
<li>Nginx+Keepalived</li>
<li>HAProxy+keepalived</li>
<li>DRBD+Heartbeat</li>
</ul>
<h2>HAProxy</h2>
<p>优点</p>
<ol>
<li>HAProxy是支持虚拟主机的，可以工作在4. 7层(支持多网段)；</li>
<li>能够补充Nginx的一些缺点比如Session的保持，Cookie的引导等工作；</li>
<li>支持url检测后端的服务器；</li>
<li>它跟LVS一样，本身仅仅就只是一款负载均衡软件；单纯从效率上来讲HAProxy更会比Nginx有更出色的负载均衡速度，在并发处理上也是优于Nginx的；</li>
<li>HAProxy可以对Mysql读进行负载均衡，对后端的MySQL节点进行检测和负载均衡，不过在后端的MySQL slaves数量超过10台时性能不如LVS；</li>
<li>HAProxy的算法较多，达到8种；</li>
</ol>
<p>官网 <a href="http://www.haproxy.org/" target="_blank">http://www.haproxy.org/</a> (自备梯子)</p>
<ul>
<li><a href="http://cbonte.github.io/haproxy-dconv/configuration-1.5.html" target="_blank">http://cbonte.github.io/haproxy-dconv/configuration-1.5.html</a></li>
<li><a href="http://demo.haproxy.org/" target="_blank">http://demo.haproxy.org/</a></li>
</ul>
<p>我觉得它是所有负载软件里最简单最好用的。配置文件比nginx还简单，而且还有监控页面。</p>
<p>下载最新版软件 <a href="http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz" target="_blank">http://www.haproxy.org/download/1.5/src/haproxy-1.5.12.tar.gz</a></p>
<p>解压</p>
<pre class="prettyprint"><code><span class="pln">tar </span><span class="pun">-</span><span class="pln">zxvf haproxy</span><span class="pun">-</span><span class="lit">1.5</span><span class="pun">.</span><span class="lit">12.tar</span><span class="pun">.</span><span class="pln">gz</span></code></pre>
<p>切换到目录</p>
<pre class="prettyprint"><code><span class="pln">cd haproxy</span><span class="pun">-</span><span class="lit">1.5</span><span class="pun">.</span><span class="lit">12</span> </code></pre>
<p>打开readme看一下，如何安装</p>
<pre class="prettyprint"><code><span class="pln">make TARGET</span><span class="pun">=</span><span class="pln">linux26
sudo make install</span></code></pre>
<h2>创建一个配置文件</h2>
<pre class="prettyprint"><code><span class="com"># Simple configuration for an HTTP proxy listening on port 80 on all</span>
<span class="com"># interfaces and forwarding requests to a single backend "servers" with a</span>
<span class="com"># single server "server1" listening on 127.0.0.1:8000</span>
<span class="kwd">global</span><span class="pln">
    daemon
    maxconn </span><span class="lit">256</span><span class="pln">

defaults
    mode http
    timeout connect </span><span class="lit">5000ms</span><span class="pln">
    timeout client </span><span class="lit">50000ms</span><span class="pln">
    timeout server </span><span class="lit">50000ms</span><span class="pln">

frontend http</span><span class="pun">-</span><span class="kwd">in</span><span class="pln">
    bind </span><span class="pun">*:</span><span class="lit">80</span><span class="pln">
    default_backend servers

backend servers
    server server1 </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">8000</span><span class="pln"> maxconn </span><span class="lit">32</span>


<span class="com"># The same configuration defined with a single listen block. Shorter but</span>
<span class="com"># less expressive, especially in HTTP mode.</span>
<span class="kwd">global</span><span class="pln">
    daemon
    maxconn </span><span class="lit">256</span><span class="pln">

defaults
    mode http
    timeout connect </span><span class="lit">5000ms</span><span class="pln">
    timeout client </span><span class="lit">50000ms</span><span class="pln">
    timeout server </span><span class="lit">50000ms</span><span class="pln">

listen http</span><span class="pun">-</span><span class="kwd">in</span><span class="pln">
    bind </span><span class="pun">*:</span><span class="lit">80</span><span class="pln">
    server server1 </span><span class="lit">127.0</span><span class="pun">.</span><span class="lit">0.1</span><span class="pun">:</span><span class="lit">8000</span><span class="pln"> maxconn </span><span class="lit">32</span></code></pre>
<h2>启动</h2>
<pre class="prettyprint"><code><span class="pln">haproxy </span><span class="pun">-</span><span class="pln">f test</span><span class="pun">.</span><span class="pln">cfg</span></code></pre>
<h2>查看状态</h2>
<p>记得在配置文件里加上</p>
<pre class="prettyprint"><code><span class="pln">listen admin_stats
    bind </span><span class="lit">0.0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pun">:</span><span class="lit">8888</span><span class="pln">
    stats refresh </span><span class="lit">30s</span><span class="pln">
    stats uri </span><span class="pun">/</span><span class="pln">stats
    stats realm </span><span class="typ">Haproxy</span> <span class="typ">Manager</span><span class="pln">
    stats auth admin</span><span class="pun">:</span><span class="pln">admin
    </span><span class="com">#stats hide-version</span></code></pre>
<p><a href="http://ip:8888/stats" target="_blank">http://ip:8888/stats</a></p>
<h2>负载均衡–调度算法</h2>
<p>HAProxy的算法有如下8种：</p>
<ul>
<li>roundrobin，表示简单的轮询，这个不多说，这个是 负载均衡 基本都具备的；</li>
<li>static-rr，表示根据权重，建议关注；</li>
<li>leastconn，表示最少连接者先处理，建议关注；</li>
<li>source，表示根据请求源IP，建议关注；</li>
<li>uri，表示根据请求的URI；</li>
<li>url_param，表示根据请求的URl参数’balance url_param’ requires an URL parameter name</li>
<li>hdr(name)，表示根据HTTP请求头来锁定每一次HTTP请求；</li>
<li>rdp-cookie(name)，表示根据据cookie(name)来锁定并哈希每一次TCP请求。</li>
</ul>
<h2>SLB是神马</h2>
<p>负载均衡（Server Load Balancer，简称SLB）是对多台云服务器进行流量分发的负载均衡服务。SLB可以通过流量分发扩展应用系统对外的服务能力，通过消除单点故障提升应用系统的可用性</p>
<h2>SLB是如何实现的</h2>
<p>使用tengine实现的。</p>
<p>Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上，针对大访问量网站的需求，添加了很多高级功能和特性。</p>
<p>see <a href="http://tengine.taobao.org/" target="_blank">http://tengine.taobao.org/</a></p>
<h2>SLB用法</h2>
<p>创建slb</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FtsMbDlyilG2itdha2dJNbb1YcSI"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FtsMbDlyilG2itdha2dJNbb1YcSI" alt="FtsMbDlyilG2itdha2dJNbb1YcS" width="2554" height="956" /></a></p>
<p>点击管理按钮，进入实例详情</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvkQ6j3WSuT2u_69XG-KjJB8M1Yb"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvkQ6j3WSuT2u_69XG-KjJB8M1Yb" alt="FvkQ6j3WSuT2u_69XG-KjJB8M1Y" width="2560" height="994" /></a></p>
<p>没啥需要改的，我们直接看服务监听功能，看看如何配置slb</p>
<ul>
<li>配置端口</li>
<li>转发规则</li>
<li>带宽</li>
<li>健康检查等</li>
</ul>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FsuvA67vcNLr5Rw7L5Aurx4LoNdO"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FsuvA67vcNLr5Rw7L5Aurx4LoNdO" alt="FsuvA67vcNLr5Rw7L5Aurx4LoNd" width="2558" height="848" /></a></p>
<p>点击编辑按钮，此时可以看到具体配置页面</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvIIlcf7QaPL8MWG97L8oRHFKnD"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FvIIlcf7QaPL8MWG97L8oRHFKnD" alt="FvIIlcf7QaPL8MWG97L8oRHFKn" width="2560" height="1120" /></a></p>
<p>目前slb支持2种转发规则</p>
<ul>
<li>轮询</li>
<li>最小连接数</li>
</ul>
<p>轮询应该是和haproxy的roundrobin调度算法一样，表示简单的轮询</p>
<p>最小连接数SLB会自动判断 当前ECS 的established 来判断是否转发</p>
<p>配置完了slb server，下一步要设置具体slb把请求转发给哪台机器，这实际上才是最核心的的配置。</p>
<p>阿里云把这件事儿做的超级简单</p>
<p>假设我现在有一个ecs服务器为已填加</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjsGTmA1fhEZRt52GUpTebWQ9uxD"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjsGTmA1fhEZRt52GUpTebWQ9uxD" alt="FjsGTmA1fhEZRt52GUpTebWQ9ux" width="2560" height="962" /></a></p>
<p>点击【未添加的服务器】，此时会列出未加入负载池的ecs服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Fg5bulgyHv3mZy9kPTz_eEvN_5H5"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Fg5bulgyHv3mZy9kPTz_eEvN_5H5" alt="Fg5bulgyHv3mZy9kPTz_eEvN_5H" width="2560" height="1020" /></a></p>
<p>选中一台服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjLo0dGzXxDbbxFaoOtIonsoFFfc"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FjLo0dGzXxDbbxFaoOtIonsoFFfc" alt="FjLo0dGzXxDbbxFaoOtIonsoFFf" width="2560" height="958" /></a></p>
<p>点击批量添加</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FnsjDqnXco-vuGZ-Rhbiw9v3OX0"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FnsjDqnXco-vuGZ-Rhbiw9v3OX0" alt="FnsjDqnXco-vuGZ-Rhbiw9v3OX" width="2210" height="988" /></a></p>
<p>配置一下权重，如果机器性能一样就配置权重一样，性能越好，权重越大</p>
<p>可选值【0 – 100】</p>
<p>完成配置后，已添加服务器里就有了2台服务器</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FrPQGvf9XhZH-gNuZzvfXWaSy0WP"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/FrPQGvf9XhZH-gNuZzvfXWaSy0WP" alt="FrPQGvf9XhZH-gNuZzvfXWaSy0W" width="2558" height="956" /></a></p>
<p>保证你的服务器都启动，比如2台服务器的80端口都正常即可</p>
<p>此时你需要做的是把你的域名解析到slb服务器的ip地址上</p>
<h2>node-slb</h2>
<p>an expressjs middleware for aliyun slb</p>
<h3>缘起</h3>
<p><a href="http://bbs.aliyun.com/read/188736.html?page=1" target="_blank">http://bbs.aliyun.com/read/188736.html?page=1</a></p>
<p>2）请问健康检查发的什么请求？ head 还是 get？ head请求。</p>
<p>如果express路由没有处理head请求的话，会触发其他路由，可能会出现请求重定向死循环</p>
<h2>原理</h2>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"> debug </span><span class="pun">=</span> <span class="kwd">require</span><span class="pun">(</span><span class="str">'debug'</span><span class="pun">)(</span><span class="str">'slb'</span><span class="pun">);</span>

<span class="kwd">module</span><span class="pun">.</span><span class="pln">exports </span><span class="pun">=</span> <span class="kwd">function</span> <span class="pun">(</span><span class="pln">req</span><span class="pun">,</span><span class="pln"> res</span><span class="pun">,</span> <span class="kwd">next</span><span class="pun">)</span> <span class="pun">{</span>
  <span class="kwd">if</span><span class="pun">(</span><span class="pln">req</span><span class="pun">.</span><span class="pln">method</span><span class="pun">.</span><span class="pln">toLowerCase</span><span class="pun">()</span> <span class="pun">==</span> <span class="str">'head'</span><span class="pun">){</span><span class="pln">    
    debug</span><span class="pun">(</span><span class="str">'[ALIYUN.COM LOG]: SLB health checking....OK...'</span><span class="pun">);</span>
    <span class="kwd">return</span><span class="pln"> res</span><span class="pun">.</span><span class="pln">sendStatus</span><span class="pun">(</span><span class="lit">200</span><span class="pun">);</span>
  <span class="pun">}</span>

  <span class="kwd">next</span><span class="pun">();</span>
<span class="pun">};</span></code></pre>
<p>原理非常简单：以中间件的形式，处理一下req.method为head的适合，终止此请求即可</p>
<h3>安装</h3>
<pre class="prettyprint"><code><span class="pln">npm install </span><span class="pun">--</span><span class="pln">save node</span><span class="pun">-</span><span class="pln">slb</span></code></pre>
<h3>用法</h3>
<pre class="prettyprint"><code><span class="kwd">var</span><span class="pln"> slb </span><span class="pun">=</span> <span class="kwd">require</span><span class="pun">(</span><span class="str">'node-slb'</span><span class="pun">);</span>

<span class="kwd">var</span><span class="pln"> app </span><span class="pun">=</span><span class="pln"> express</span><span class="pun">();</span><span class="pln">
app</span><span class="pun">.</span><span class="pln">user</span><span class="pun">(</span><span class="pln">slb</span><span class="pun">);</span></code></pre>
<h3>测试</h3>
<p>首先启动demo的服务</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm start

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> cd demo </span><span class="pun">&amp;&amp;</span><span class="pln"> npm install </span><span class="pun">&amp;&amp;</span><span class="pln"> npm start


</span><span class="pun">&gt;</span><span class="pln"> url@0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb</span><span class="pun">/</span><span class="pln">demo
</span><span class="pun">&gt;</span><span class="pln"> node </span><span class="pun">./</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">www</span></code></pre>
<p>执行test命令，测试请求</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm test

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> test </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> curl </span><span class="pun">-</span><span class="pln">i </span><span class="pun">-</span><span class="pln">X HEAD http</span><span class="pun">:</span><span class="com">//127.0.0.1:3000</span><span class="pln">

HTTP</span><span class="pun">/</span><span class="lit">1.1</span> <span class="lit">200</span><span class="pln"> OK
X</span><span class="pun">-</span><span class="typ">Powered</span><span class="pun">-</span><span class="typ">By</span><span class="pun">:</span> <span class="typ">Express</span>
<span class="typ">Content</span><span class="pun">-</span><span class="typ">Type</span><span class="pun">:</span><span class="pln"> text</span><span class="pun">/</span><span class="pln">plain</span><span class="pun">;</span><span class="pln"> charset</span><span class="pun">=</span><span class="pln">utf</span><span class="pun">-</span><span class="lit">8</span>
<span class="typ">Content</span><span class="pun">-</span><span class="typ">Length</span><span class="pun">:</span> <span class="lit">2</span>
<span class="typ">ETag</span><span class="pun">:</span><span class="pln"> W</span><span class="pun">/</span><span class="str">"2-d736d92d"</span>
<span class="typ">Date</span><span class="pun">:</span> <span class="typ">Mon</span><span class="pun">,</span> <span class="lit">29</span> <span class="typ">Jun</span> <span class="lit">2015</span> <span class="lit">03</span><span class="pun">:</span><span class="lit">46</span><span class="pun">:</span><span class="lit">49</span><span class="pln"> GMT
</span><span class="typ">Connection</span><span class="pun">:</span><span class="pln"> keep</span><span class="pun">-</span><span class="pln">alive</span></code></pre>
<p>此时，观察服务器日志</p>
<pre class="prettyprint"><code><span class="pun">➜</span><span class="pln">  node</span><span class="pun">-</span><span class="pln">slb git</span><span class="pun">:(</span><span class="pln">master</span><span class="pun">)</span> <span class="pun">✗</span><span class="pln"> npm start

</span><span class="pun">&gt;</span><span class="pln"> node</span><span class="pun">-</span><span class="pln">slb@1</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb
</span><span class="pun">&gt;</span><span class="pln"> cd demo </span><span class="pun">&amp;&amp;</span><span class="pln"> npm install </span><span class="pun">&amp;&amp;</span><span class="pln"> npm start


</span><span class="pun">&gt;</span><span class="pln"> url@0</span><span class="pun">.</span><span class="lit">0.0</span><span class="pln"> start </span><span class="pun">/</span><span class="typ">Users</span><span class="pun">/</span><span class="pln">sang</span><span class="pun">/</span><span class="pln">workspace</span><span class="pun">/</span><span class="pln">github</span><span class="pun">/</span><span class="pln">node</span><span class="pun">-</span><span class="pln">slb</span><span class="pun">/</span><span class="pln">demo
</span><span class="pun">&gt;</span><span class="pln"> DEBUG</span><span class="pun">=</span><span class="pln">slb node </span><span class="pun">./</span><span class="pln">bin</span><span class="pun">/</span><span class="pln">www

</span><span class="pun">[</span><span class="pln">ALIYUN</span><span class="pun">.</span><span class="pln">COM LOG</span><span class="pun">]:</span><span class="pln"> SLB health checking</span><span class="pun">....</span><span class="pln">OK</span><span class="pun">...</span></code></pre>
<p>如果出现<code>[ALIYUN.COM LOG]: SLB health checking....OK...</code>说明正常。</p>
<p>如果想打印日志，可以DEBUG=slb，如果不想打印日志，默认即无。</p>
<h2>总结</h2>
<ul>
<li>首先介绍了haproxy和负载均衡算法</li>
<li>介绍了阿里云slb用法</li>
<li>给出node-slb，一个express中间件</li>
</ul>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/">对比linux负载均衡haproxy，slb以及node-slb</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%af%b9%e6%af%94linux%e8%b4%9f%e8%bd%bd%e5%9d%87%e8%a1%a1haproxy%ef%bc%8cslb%e4%bb%a5%e5%8f%8anode-slb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>解决Centos5/6 ip_conntrack: table full, dropping packet</title>
		<link>https://www.fuwuqiok.com/%e8%a7%a3%e5%86%b3centos56-ip_conntrack-table-full-dropping-packet/</link>
		<comments>https://www.fuwuqiok.com/%e8%a7%a3%e5%86%b3centos56-ip_conntrack-table-full-dropping-packet/#comments</comments>
		<pubDate>Sat, 15 Aug 2015 04:35:12 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[dropping packet]]></category>
		<category><![CDATA[解决Centos5/6 ip_conntrack: table full]]></category>
		<category><![CDATA[阿里云代维]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2577</guid>
		<description><![CDATA[<p>linux中会有一个模块用于跟踪IP的连接情况 ip_conntrack，但是这个表的容量是有限制的，一般情况 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e8%a7%a3%e5%86%b3centos56-ip_conntrack-table-full-dropping-packet/">解决Centos5/6 ip_conntrack: table full, dropping packet</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<div>linux中会有一个模块用于跟踪IP的连接情况 ip_conntrack，但是这个表的容量是有限制的，一般情况下和内存有关。</div>
<div>当链接过多的时候系统就会报错ip_conntrack: table full, dropping packet，可以修改/proc/sys/net/ipv4/netfilter/ip_conntrack_max；</div>
<div>有时候会发现/proc下没有这个目录，这时候是由于这个模块挂载有问题，而RH5和RH6下模块名也不一样<span id="more-379"></span></div>
<div>可修改/etc/sysctl.conf 然后sysctl -p生效。</div>
<div></div>
<div><strong>RH6系列</strong></div>
<div>modprobe nf_conntrack</div>
<div>net.nf_conntrack_max = 655360</div>
<div>
<div>net.netfilter.nf_conntrack_tcp_timeout_established = 36000</div>
<div></div>
<div><strong>RH5系列</strong></div>
<div>modprobe  ip_conntrack</div>
<div></div>
<div>net.ipv4.ip_conntrack_max = 655350</div>
<div>在内核内存中netfilter可以同时处理的“任务”（连接跟踪条目）<br />
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 10800<br />
跟踪的连接超时结束时间</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e8%a7%a3%e5%86%b3centos56-ip_conntrack-table-full-dropping-packet/">解决Centos5/6 ip_conntrack: table full, dropping packet</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e8%a7%a3%e5%86%b3centos56-ip_conntrack-table-full-dropping-packet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用key登陆管理linux服务器/免密码登陆linux服务器</title>
		<link>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8key%e7%99%bb%e9%99%86%e7%ae%a1%e7%90%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%85%8d%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8/</link>
		<comments>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8key%e7%99%bb%e9%99%86%e7%ae%a1%e7%90%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%85%8d%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8/#comments</comments>
		<pubDate>Sat, 15 Aug 2015 04:33:08 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[网站代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[ssh免密码登录]]></category>
		<category><![CDATA[使用key登陆管理linux服务器/免密码登陆linux服务器]]></category>
		<category><![CDATA[阿里云代维]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2574</guid>
		<description><![CDATA[<p>ssh除了密码验证外，还有一种比较常用的验证方式：key；他的好处除了安全外，还可以实现linux之间的免密码 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8key%e7%99%bb%e9%99%86%e7%ae%a1%e7%90%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%85%8d%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8/">使用key登陆管理linux服务器/免密码登陆linux服务器</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>ssh除了密码验证外，还有一种比较常用的验证方式：key；他的好处除了安全外，还可以实现linux之间的免密码登陆 ，方便管理或者批量维护。</p>
<p>本文介绍一下windows/linux下如何配置key免密码登陆linux服务器</p>
<div id="highlighter_725721" class="syntaxhighlighter  ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>01</code></td>
<td class="content"><code class="plain">[root@A ~]</code><code class="comments"># ssh-keygen -t rsa</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>02</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>03</code></td>
<td class="content"><code class="plain">Generating public/private rsa key pair.</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>04</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>05</code></td>
<td class="content"><code class="plain">Enter </code><code class="functions">file</code> <code class="keyword">in</code> <code class="functions">which</code> <code class="plain">to save the key (/root/.</code><code class="functions">ssh</code><code class="plain">/id_rsa):</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>06</code></td>
<td class="content"><code class="plain">//key保存的路径和文件名</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>07</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>08</code></td>
<td class="content"><code class="plain">Enter passphrase (empty </code><code class="keyword">for</code> <code class="plain">no passphrase):</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>09</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>10</code></td>
<td class="content"><code class="plain">//key的密码，免密码登陆的话留空</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>11</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>12</code></td>
<td class="content"><code class="plain">Enter same passphrase again:</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>13</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>14</code></td>
<td class="content"><code class="plain">Your identification has been saved </code><code class="keyword">in</code> <code class="plain">/root/.</code><code class="functions">ssh</code><code class="plain">/id_rsa</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>15</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>16</code></td>
<td class="content"><code class="plain">//生成了私钥/root.</code><code class="functions">ssh</code><code class="plain">/id_rsa</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>17</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>18</code></td>
<td class="content"><code class="plain">Your public key has been saved </code><code class="keyword">in</code> <code class="plain">/root/.</code><code class="functions">ssh</code><code class="plain">/id_rsa.pub</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>19</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>20</code></td>
<td class="content"><code class="plain">//生成了公钥 /root/.</code><code class="functions">ssh</code><code class="plain">/id_rsa.pub</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>21</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>22</code></td>
<td class="content"><code class="plain">The key fingerprint is:</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>23</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>24</code></td>
<td class="content"><code class="plain">82:8c:2c:52:06:c6:f3:c4:1c:1c:35:b7:</code><code class="functions">cd</code><code class="plain">:5b:42:a2 root@A</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>25</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>26</code></td>
<td class="content"><code class="plain">[root@A ~]</code><code class="comments"># ls /root/.ssh/ //查看一下目录，已经有了这两个文件</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>27</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>28</code></td>
<td class="content"><code class="plain">authorized_keys id_rsa id_rsa.pub known_hosts</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>29</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>30</code></td>
<td class="content"><code class="plain">[root@A ~]</code><code class="comments">#</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>查看一下服务器ssh服务公钥存放的路径</p>
<div id="highlighter_627595" class="syntaxhighlighter  ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>1</code></td>
<td class="content"><code class="plain">[root@A ~]</code><code class="comments"># cat /etc/ssh/sshd_config |grep AuthorizedKeysFile</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>2</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>3</code></td>
<td class="content"><code class="comments">#AuthorizedKeysFile .ssh/authorized_keys</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>默认服务器保存公钥的位置是.ssh/AuthorizedKeysFile</p>
<p>所以需要将生成的公钥文件通过scp或者任何方法拷贝到你需要远程登录的服务器的这个文件中</p>
<div id="highlighter_423396" class="syntaxhighlighter  ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>01</code></td>
<td class="content"><code class="plain">[root@B ~]</code><code class="comments"># cd .ssh/</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>02</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>03</code></td>
<td class="content"><code class="plain">[root@B .</code><code class="functions">ssh</code><code class="plain">]</code><code class="comments"># cat id_rsa.pub &gt;authorized_keys</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>04</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>05</code></td>
<td class="content"><code class="plain">//服务器本地</code><code class="functions">ssh</code><code class="plain">客户端默认读取的私钥路径已经包含了/.</code><code class="functions">ssh</code><code class="plain">/id_rsa</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>06</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>07</code></td>
<td class="content"><code class="plain">[root@A .</code><code class="functions">ssh</code><code class="plain">]</code><code class="comments"># cat /etc/ssh/ssh_config |grep IdentityFile</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>08</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>09</code></td>
<td class="content"><code class="comments"># IdentityFile ~/.ssh/identity</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>10</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>11</code></td>
<td class="content"><code class="comments"># IdentityFile ~/.ssh/id_rsa</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>12</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>13</code></td>
<td class="content"><code class="comments"># IdentityFile ~/.ssh/id_dsa</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>至此你可以直接从A 执行命令ssh ipB</p>
<p>登录到服务器B了，就这么简单。</p>
<p>有一种简单的方法：使用命令ssh-copy-id 直接将本机的key加入到对方服务器的验证文件中</p>
<div id="highlighter_917347" class="syntaxhighlighter  ">
<div class="lines">
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>01</code></td>
<td class="content"><code class="plain">[root@A .</code><code class="functions">ssh</code><code class="plain">]</code><code class="comments"># ssh-copy-id</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>02</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>03</code></td>
<td class="content"><code class="plain">Usage: /usr/bin/</code><code class="functions">ssh</code><code class="plain">-copy-</code><code class="functions">id</code> <code class="plain">[-i [identity_file]] [user@]machine</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>04</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>05</code></td>
<td class="content"><code class="plain">[root@A .</code><code class="functions">ssh</code><code class="plain">]</code><code class="comments"># ssh-copy-id -i /root/.ssh/id_rsa root@ipB</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>06</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>07</code></td>
<td class="content"><code class="plain">The authenticity of host </code><code class="string">'ipB (ipB)'</code> <code class="plain">can't be established.</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>08</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>09</code></td>
<td class="content"><code class="plain">RSA key fingerprint is 17:21:32:02:da:3b:a1:d1:a2:69:12:36:a2:d7:59:ad.</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>10</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>11</code></td>
<td class="content"><code class="plain">Are you sure you want to </code><code class="keyword">continue</code> <code class="plain">connecting (</code><code class="functions">yes</code><code class="plain">/no)? </code><code class="functions">yes</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>12</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>13</code></td>
<td class="content"><code class="plain">root@ipB's password:</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>14</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>15</code></td>
<td class="content"><code class="plain">Now try logging into the machine, with </code><code class="string">"ssh 'root@ipB'"</code><code class="plain">, and check </code><code class="keyword">in</code><code class="plain">:</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>16</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>17</code></td>
<td class="content"><code class="plain">.</code><code class="functions">ssh</code><code class="plain">/authorized_keys</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>18</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>19</code></td>
<td class="content"><code class="plain">[root@A ~]</code><code class="comments"># ssh ipB</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>20</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>21</code></td>
<td class="content"><code class="plain">Last login: Sun Dec 15 19:33:07 2013 from ipA</code></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt2">
<table>
<tbody>
<tr>
<td class="number"><code>22</code></td>
<td class="content"></td>
</tr>
</tbody>
</table>
</div>
<div class="line alt1">
<table>
<tbody>
<tr>
<td class="number"><code>23</code></td>
<td class="content"><code class="plain">[root@B ~]</code><code class="comments">#</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p>这样执行之后，就可以直接登陆服务器了。</p>
<p>上面都是通过linux的ssh客户端来连接，如果通过本地来使用key登陆的话方法大同小异；</p>
<p>将私钥id_rsa下载到本地，然后导入到客户端的密钥认证配置的地方即可；</p>
<p>以SecureCRT为例，配置位置如下图选择下载下来的私钥文件即可。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/131.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/131.png" alt="131" width="525" height="534" /></a></p>
<div class="wumii-hook">
<div id="wumiiBtnDiv">
<div id="wumiiLikeBtnDiv">
<span id="wumiiLikeBtn"></span></div>
</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8key%e7%99%bb%e9%99%86%e7%ae%a1%e7%90%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%85%8d%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8/">使用key登陆管理linux服务器/免密码登陆linux服务器</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8key%e7%99%bb%e9%99%86%e7%ae%a1%e7%90%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8%e5%85%8d%e5%af%86%e7%a0%81%e7%99%bb%e9%99%86linux%e6%9c%8d%e5%8a%a1%e5%99%a8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何限制通过固定的IP访问阿里云OSS的文件</title>
		<link>https://www.fuwuqiok.com/%e5%a6%82%e4%bd%95%e9%99%90%e5%88%b6%e9%80%9a%e8%bf%87%e5%9b%ba%e5%ae%9a%e7%9a%84ip%e8%ae%bf%e9%97%ae%e9%98%bf%e9%87%8c%e4%ba%91oss%e7%9a%84%e6%96%87%e4%bb%b6/</link>
		<comments>https://www.fuwuqiok.com/%e5%a6%82%e4%bd%95%e9%99%90%e5%88%b6%e9%80%9a%e8%bf%87%e5%9b%ba%e5%ae%9a%e7%9a%84ip%e8%ae%bf%e9%97%ae%e9%98%bf%e9%87%8c%e4%ba%91oss%e7%9a%84%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Sat, 15 Aug 2015 04:19:19 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[aws代维]]></category>
		<category><![CDATA[aws服务器代维]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[如何限制通过固定的IP访问阿里云OSS的文件]]></category>
		<category><![CDATA[小说站代维]]></category>
		<category><![CDATA[阿里云代维]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=2569</guid>
		<description><![CDATA[<p>最近有客户提出需求，在某些情况，需要使用OSS来存大量文件，但是请求这些文件时候需要访问固定的IP（比如程序之 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%a6%82%e4%bd%95%e9%99%90%e5%88%b6%e9%80%9a%e8%bf%87%e5%9b%ba%e5%ae%9a%e7%9a%84ip%e8%ae%bf%e9%97%ae%e9%98%bf%e9%87%8c%e4%ba%91oss%e7%9a%84%e6%96%87%e4%bb%b6/">如何限制通过固定的IP访问阿里云OSS的文件</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>最近有客户提出需求，在某些情况，需要使用OSS来存大量文件，但是请求这些文件时候需要访问固定的IP（比如程序之前写死了IP，比如和运营商谈免流量的问题，公司跳板机，固定公司ip访问限制）</p>
<div>通过查看阿里云服务器手册发现oss的服务是由多个IP的，并且随时可能变化，因此如果要实现这个功能，这时候可以通过ECS搭建反向代理来实现需求</div>
<div></div>
<div>nginx配置如下：</div>
<p>server {<br />
listen       80 default_server;<br />
server_name  _;<br />
location / {<br />
proxy_pass http://xxx.oss-cn-qingdao-internal.aliyuncs.com/;<br />
proxy_set_header   Referer             http://www.test.com;<br />
}<br />
}</p>
<div>这里通过ECS代理OSS的内网，从而省掉了OSS的流量费，但是访问效率需要依赖ECS的带宽</div>
<div><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Image.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/Image.png" alt="Image" width="669" height="220" /></a></div>
<div>为了安全，OSS配置了refer限制，也可以通过proxy_set_header来代理发送一个refer，这个refer可以设置一个随意别人不知道的值，能够变相实现加密（只有ECS服务器知道这个refer值）</div>
<div> 配置完毕之后，就可以通过访问ECS来访问到OSS上的文件了，比如：</div>
<div><a href="https://www.fuwuqiok.com/wp-content/uploads/2015/08/aaa.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2015/08/aaa.png" alt="aaa" width="408" height="136" /></a></div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%a6%82%e4%bd%95%e9%99%90%e5%88%b6%e9%80%9a%e8%bf%87%e5%9b%ba%e5%ae%9a%e7%9a%84ip%e8%ae%bf%e9%97%ae%e9%98%bf%e9%87%8c%e4%ba%91oss%e7%9a%84%e6%96%87%e4%bb%b6/">如何限制通过固定的IP访问阿里云OSS的文件</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%a6%82%e4%bd%95%e9%99%90%e5%88%b6%e9%80%9a%e8%bf%87%e5%9b%ba%e5%ae%9a%e7%9a%84ip%e8%ae%bf%e9%97%ae%e9%98%bf%e9%87%8c%e4%ba%91oss%e7%9a%84%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
