对于一个新手运维如何才能做好一个大型的网站服务器的运维呢

对于一个新手运维如何才能做好一个大型的网站服务器的运维呢,平时应该注意些什么事项?

运维 新手 服务器 大型12 条回复 • 2017-05-14 20:22:25 +08:00
ytmsdy 1
ytmsdy 2017-05-06 12:19:13 +08:00 via iPhone
不要用 rm -rf / 这个命令就可以了!
corvofeng 2
corvofeng 2017-05-06 12:49:34 +08:00 via Android ❤️ 1
把所有文件都备份了, 然后试着搞挂一次,再恢复了,你就不再是新手了?
coo 3
coo 2017-05-06 13:35:12 +08:00
新手如何打 Boss ?急,在线等。

https://search.jd.com/Search?keyword=%E8%BF%90%E7%BB%B4&enc=utf-8
xderam 4
xderam 2017-05-07 00:52:15 +08:00
经常思考自己为什么那么苦逼就可以了。
xifengzhu 5
xifengzhu 2017-05-07 09:59:24 +08:00
备份,备份,备份
julyclyde 6
julyclyde 2017-05-07 21:34:26 +08:00
作为一个十年经验,其中 5.5 年在国内某行业*的老同志,我给你的忠告就是:
首先,要认真
julyclyde 7
julyclyde 2017-05-07 21:35:08 +08:00
其次,吃过的亏要记住,别犯第二次
wangzhangwei 8
wangzhangwei 2017-05-08 10:35:04 +08:00
跟着你的领导学习,减少犯错误,不断总结,*后走向人生巅峰。
abel163 9
abel163 2017-05-08 19:13:03 +08:00
要细心,要谨慎,备份,备份
qq1242245799 10
qq1242245799 2017-05-09 10:55:06 +08:00
@abel163 哦,是吗?我感觉各位大佬都是大水 b,直接说要香港服务器找我就对了

内网环境集群主机的时间同步

场景描述

  • 内网主机之间时间不一致,需要作同步;主机多数不能连接外网,只有*少数几台能连接外网

系统环境

  • centos7
  • root权限

实施方案

  • 内网中一台主机A (如172.16.59.25)与外网互通,通过外网 NTP 服务器同步时间
  • 主机A对内网提供 NTP 服务
  • 内网其他机器通过主机A进行对时

实施过程

主机A设置

  1. # 安装NTP软件
  2. # 方式1
  3. yum -y install ntp
  4. # 方式2(严格按照顺序autogen->ntpdate->ntp)
  5. rpm -hiv autogen-libopts-5.18-5.el7.x86_64.rpm
  6. rpm -hiv ntpdate-4.2.6p5-18.el7.centos.x86_64.rpm
  7. rpm -hiv ntp-4.2.6p5-18.el7.centos.x86_64.rpm
  8. # 编辑NTP配置
  9. vim /etc/ntp.conf

ntp.conf 配置如下

  1. driftfile /var/lib/ntp/drift
  2. # 默认拒*客户端所有操作
  3. restrict default kod notrap nomodify nopeer noquery
  4. # 允许本地操作
  5. restrict 127.0.0.1
  6. restrict ::1
  7. # 允许该网段同步时间,但不可修改NTP服务器时间
  8. restrict 172.16.59.0 mask 255.255.255.0 nomodify
  9. # 用于NTPD的上级服务器、本机时钟的同步,以及时钟的层次stratum
  10. server cn.ntp.org.cn prefer
  11. server edu.ntp.org.cn iburst
  12. # 本机时间兜底
  13. server 127.127.1.0
  14. fudge 127.127.1.0 stratum 8
  15. includefile /etc/ntp/crypto/pw
  16. keys /etc/ntp/keys
  17. disable monitor
  1. # 编辑 ntpd 文件
  2. vim /etc/sysconfig/ntpd

ntpd 文件修改如下

  1. OPTIONS=“-u ntp:ntp -p /var/run/ntpd.pid”
  2. # BIOS时间也会跟随改变
  3. SYNC_HWCLOCK=yes
  1. # 查看状态
  2. systemctl status ntpd.service
  3. ntpstat
  4. # 重启服务
  5. systemctl restart ntpd.service
  6. # 开机启动
  7. systemctl enable ntpd.service

其他主机设置

  1. # 安装 ntpdate 软件
  2. # 方式1
  3. yum -y install ntp
  4. # 方式2(严格按照顺序autogen->ntpdate->ntp)
  5. rpm -hiv autogen-libopts-5.18-5.el7.x86_64.rpm
  6. rpm -hiv ntpdate-4.2.6p5-18.el7.centos.x86_64.rpm
  7. rpm -hiv ntp-4.2.6p5-18.el7.centos.x86_64.rpm
  8. # 编辑配置文件
  9. vi /etc/ntp.conf

ntp.conf配置如下

  1. driftfile /var/lib/ntp/drift
  2. # 默认拒*客户端所有操作
  3. restrict default kod notrap nomodify nopeer noquery
  4. # 禁止本身的server
  5. # server cn.ntp.org.cn prefer
  6. # server edu.ntp.org.cn iburst
  7. restrict 172.16.59.25
  8. restrict 127.0.0.1
  9. restrict ::1
  10. server 172.16.59.25
  11. # server 127.127.1.0
  12. # fudge 127.127.1.0 stratum 10
  13. includefile /etc/ntp/crypto/pw
  14. keys /etc/ntp/keys
  15. disable monitor
  1. # 编辑 ntpd 文件
  2. vim /etc/sysconfig/ntpd

ntpd 文件修改如下

  1. OPTIONS=“-u ntp:ntp -p /var/run/ntpd.pid”
  2. # BIOS时间也会跟随改变
  3. SYNC_HWCLOCK=yes

# 重启服务 systemctl restart ntpd.service # 开机启动 systemctl enable ntpd.service

过程总结

可能失败原因及分析

  • NTP 服务刚启动后,客户端无法同步时间,需等待几分钟才可以
  • 关闭或者设置防火墙,允许123端口
  • 网络上存在多个 NTP 服务器时,客户端切换同步源后需要重启
  • 如果本机与 NTP 服务器时间误差超过1000s,则同步失败。可以按照下面命令解决。
    1. # 更改时区为中国
    2. timedatectl set-timezone “Asia/Shanghai”
    3. # 与外网同步一次时间
    4. ntpdate cn.ntp.org.cn
    5. # 注意 ntpdate

stratum 的概念

  • 顶层是1,值为0时表示层数不明,层的值是累加的,比如 NTP 授时方向是 A -> B -> C,假设 A 的层值是3,那么B从A获取到时间层值为4,C从B获取到时间,C的层值被置为5。一般只有整个 NTP 系统*顶层的服务器stratum才设为1。
  • NTP 同步的方向是从stratum 值较小的节点向较大的节点传播,如果某个 NTP 客户端接收到 stratum 比自己还要大,那么 NTP 客户端认为自己的时间比接受到的时间更为精确,不会进行时间的更新。
  • 对于大部分 NTP 软件系统来说,服务启动后,stratum 值初始是0,一旦 NTP 服务获取到了时间,NTP 层次就设置为上级服务器 stratum +1。对于具备卫星时钟、原子钟的专业 NTP 设备,一般 stratum 值初始是1。

NTPD运行过程

  • NTPD 启动后,stratum 值初始是0,此时 NTPD 接收到 NTP 请求,回复 stratum 字段为0的 NTP 包,客户端接收后,发现 stratum 字段无效,拒*更新时间,造成时间更新失败。
  • 几分钟后,NTPD从上级服务器获取到了更新,设置了正确的 stratum,回复 stratum 字段为 n+1的 NTP 包,客户端接收后,确认 stratum 有效,成功进行时间更新。
  • 在 NTPD 上级服务器不可用的情况下,NTPD 将本机时钟服务模拟为一个上级 NTP 服务器,地址使用环回127.127.1.0。服务启动几分钟后,NTPD 从 127.127.1.0 更新了时钟,设置了有效的 stratum,客户端接收后,成功进行时间更新。

ntpd与ntpdate修改时间的区别

ntpd 不仅仅是时间同步服务器,他还可以做客户端与标准时间服务器进行同步时间,而且是平滑同步,并非ntpdate立即同步,在生产环境中慎用ntpdate,也正如此两者不可同时运行。

时钟的跃变,对于某些程序会导致很严重的问题。许多应用程序依赖连续的时钟——毕竟,这是一项常见的假定,即,取得的时间是线性的,一些操作,例如数据库事务,通常会地依赖这样的事实:时间不会往回跳跃。不幸的是,ntpdate调整时间的方式就是我们所说的”跃变“:在获得一个时间之后,ntpdate使用settimeofday设置系统时间,这有几个非常明显的问题:

*,这样做不安全。ntpdate的设置依赖于ntp服务器的安全性,攻击者可以利用一些软件设计上的缺陷,拿下ntp服务器并令与其同步的服务器执行某些消耗性的任务。由于ntpdate采用的方式是跳变,跟随它的服务器无法知道是否发生了异常(时间不一样的时候,唯一的办法是以服务器为准)。

第二,这样做不精确。一旦ntp服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd不仅能够校准计算机的时间,而且能够校准计算机的时钟。

第三,这样做不够优雅。由于是跳变,而不是使时间变快或变慢,依赖时序的程序会出错(例如,如果ntpdate发现你的时间快了,则可能会经历两个相同的时刻,对某些应用而言,这是致命的)。

因而,唯一一个可以令时间发生跳变的点,是计算机刚刚启动,但还没有启动很多服务的那个时候。其余的时候,理想的做法是使用ntpd来校准时钟,而不是调整计算机时钟上的时间。

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时

RTC硬件时间相关命令

  1. clock –r 显示硬件时钟与日期
  2. clock –s 将系统时钟调整为与目前的硬件时钟一致。
  3. clock –w 将硬件时钟调整为与目前的系统时钟一致

查看和修改时间

  1. # 查看时间和日期
  2. date
  3. date -R
  4. timedatectl
  5. # 查看本月月历
  6. cal
  7. # 设置时间和日期
  8. # 例如:将系统日期设定成2019年11月3日的命令
  9. date -s 11/03/2019
  10. #将系统时间设定成下午5点55分55秒的命令
  11. date -s 17:55:55
  12. # 将当前时间和日期写入BIOS,避免重启后失效**
  13. hwclock -w
  14. # 修改时区
  15. tzselect

 

VMware搭建KMS服务器(VLMCSD)

VMware搭建KMS服务器(VLMCSD)

仅需要其中的floppy144.flp

新建Linux虚拟机,硬件仅保留内存(*小14MB,推荐16MB)、处理器(1个1核心)、软盘(指向floppy144.flp)、网络适配器(桥接模式)、显示器

支持VL版本的Win Vista/7/8/8.1、WinSrv 2008/2008R2/2012/2012R2、Office/Project/Visio 2010/2013

管理员运行命令提示符cmd

Windows 激活命令:

CD “%SystemRoot%\SYSTEM32″

CSCRIPT /NOLOGO SLMGR.VBS /SKMS 192.168.0.xxx

CSCRIPT /NOLOGO SLMGR.VBS /ATO

CSCRIPT /NOLOGO SLMGR.VBS /XPR

Office/Project/Visio 2013(2010换下安装路径) 激活命令:

32位:CD “%ProgramFiles(x86)%\MICROSOFT OFFICE\OFFICE15″

64位:CD “%ProgramFiles%\MICROSOFT OFFICE\OFFICE15″

CSCRIPT OSPP.VBS /SETHST:192.168.0.xxx

CSCRIPT OSPP.VBS /ACT

CSCRIPT OSPP.VBS /DSTATUS

以上两处IP地址根据实际情况修改

选择Ubuntu服务器版操作系统的六大理由

今天分别从成本、系统集成、虚拟化、云计算、安全性、系统管理上来阐述,为什么要选择Ubuntu服务器版操作系统。

减少成本

(1) 减少数据中心成本

Ubuntu服务器版是真正能为企业减少IT基础设施成本的机会。Ubuntu服务器提供了企业功能定制化服务。精简的结构让*少的能耗和*省资源提供更多的服务。这种为特定功能定制的缩减版Ubuntu服务器也意味着更小的出错率。

(2)服务器维护简单

Ubuntu服务器只有部分组件需要维护,对于技术娴熟的系统管理员来说,维护Ubuntu服务器是一项清闲的工作。一般的服务只需要15-30分钟就可以配置完成。

(3)自动更新

经过一些初始配置工作后,剩下的系统可以自动进行安全配置。这样就不需要管理员再进行配置,服务器就可以提供一些重要服务。Ubuntu有两个版本更新周期,长短周期的无缝配合,让系统在5年内实现新技术的更新换代,版本更新过程中用户不需要担心系统安全和稳定问题。

(4)应用包

应用程序在Ubuntu中通常被称为包,因为在Ubuntu系统中,应用程序和其所依赖的库都必须打包在一起。这点与其他Linux系统不太一样。这就意味着系统管理员可以使用启动、停止、关机等简单的命令来控制Ubuntu系统中应用程序。这样简单的操作方式更加容易扩展服务器的功能,使用包方式不仅可以节省系统管理员的时间,还可以*大限度的提高数据中心的正常运行时间。

(5)减少能量消耗

通过Ubuntu企业云、Power Capping技术和PowerNap技术可以减少Ubuntu服务器系统的能耗。当数据中心的能耗减少了,系统可提供的服务也更好。Ubuntu具有*佳的服务环境,其低耗稳定的特性,可以*大限度的提高上网本和笔记本电池的寿命,同时让Ubuntu内核发挥*高效率。

(6)免费许可证

Ubuntu服务器提供免费的许可证和订阅。Ubuntu技术团队免费提供重要的维护和安全升级。所有订阅和许可证费用是通过提供有重要价值的服务获得,比如,给企业搭建环境、商业咨询和技术支持等。

系统集成

(1)集成现有的系统

Ubuntu服务器版本用常用的身份认证方式和服务入口工具简单地集成企业现有的客户/服务器结构。我们都知道系统集成技术的重要性,这也是Ubuntu团队花费大量时间研究如何实现服务器与基础设施简单融合的原因。

(2)简单的验证方式

验证功能对于网络信息识别与分享是非常重要的。所有Ubuntu服务器版都用Open LDAP来确保在必要时建立一个共享服务目录。通过简单的配置后,新版Ubuntu服务器就可以成为LDAP上网本中集成的一部分

(3)结合微软活跃目录

所有融合微软活动目录(ActiveDirectory)的Ubuntu服务器版本都有一个Likewise-Open工具。Likewise-Open可以帮助Ubuntu机器在不同机器中通过活跃目录实现资源的辨别、分享认证和访问。所以Ubuntu服务器可以通过简单的指令在无安全风险下为客户机提供资源服务。

(4)共享打印服务

共享打印服务是通过SAMBA协议(一种开源的SMB/CIFS的实现)或者CUPS协议(苹果常用的Unix打印系统,也用于苹果Mac OSX系统中)实现的。所有基于CUPS协议下的大部分平台都支持自动发现打印资源功能,在苹果电脑上可瞬间配置成功。在Windows机上安装打印机需要增加一些额外配置工作,但是在Ubuntu服务器版本上就可以提供石头般稳定的服务。

(5)使用SAMBA协议共享文件

文件共享和打印共享一样使用SANBA协议,可以合并微软的活动目录(Active Directory)。兼容Ubuntu客户端复杂的运行环境。通过NFS、Kerberos、SHH等协议实现UNIX和Linux系统的集成。

 三虚拟技术

(1)更容易实现虚拟化

Ubuntu服务器版是非常流行的虚拟化数据中心平台。Ubuntu服务器为主机和客户机提供KVM虚拟化技术。同时Ubuntu服务器还结合了大量的开源和专有技术。

(2)开源虚拟化

每一款发行版Ubuntu服务器都提供了很多方式来创建和管理虚拟化环境。开源技术是虚拟化环境搭建技术的前端,而且Ubuntu免费许可证的运行模式,非常适合动态的扩大和减少虚拟化环境中实际和虚拟的机器。

(3)低空间占用的操作系统

Ubuntu服务器可以通过虚拟机配置出空间占用低的理想环境。Ubuntu有一个虚拟机生成器,允许多个欲安装的机器通过简单的程序复制实现立刻安装。通过常用的环境配置工具,用户可以在简单的环境中管理虚拟机。而且虚拟机和物理机的管理方式没有不同,这两种机器用相同的界面和方式进行管理。

(4)Ubuntu服务器:已经准备好虚拟化

用Ubuntu系统内置的KVM,libvirt,和虚拟主机简表可以在X86中建立虚拟环境。为了简化硬件维修和维持效率平衡,在用户和服务器之间的迁移时要求它们共用一个存储系统。当相同服务器上的所有主机都使用相同的操作系统和应用程序时,内存集成可以*大程度的增加虚拟机的数量。

(5)通过VirtlO设备增加性能

VirtlO设备提供虚拟机访问硬件设备的直接通道,加快了运行速度和简化维护。你可以给虚拟机扩展特定硬件实现更高的吞吐量。Libvirt接口将要成为一项开源标准,通过第三方通用接口成为Linux内核的一部分。

(6)*好的客户端操作系统

通过现在主流的虚拟技术,比如,亚马逊EC2,VMware,Xen,Parallels,LXC,VirtualBox,以及KVM ,Ubuntu服务器可当做客户端来用。你可以基于虚拟机上在Ubuntu服务器上勾选你需要的功能,配置一个空间占用率*低的精小系统。我们还为你提供一个安装工具,只要几分钟就可以在你的系统上安装、卸载虚拟机。

云计算

Ubuntu服务器版可以为你提供一切资源,将你的基础设施建立在公共云前端(亚马逊 CE2)或者是你私有云的建设。你可以用相同的镜像和工具来控制这两种云。Ubuntu企业云可以通过防火墙的安全检查提供实时灵活的云计算,并且实现私有云与共有云之间简单迁移。

(1)私有云:Ubuntu企业云

如果你想在你的IT基础设施上创建私有云,Ubuntu企业云(UEC)可以为你提供所需要的工具。这样你就可以在安全环境下享受云计算带来的好处。

部署工作负载随时运行。提高或者降低应用程序的计算能力。作为Ubuntu服务器的重要组成部分,Ubuntu企业云很容易安装。UEC整合了一系列的开源项目,包括KVM、Libvirt和Eucalyptus。

(2)公共云:基于亚马逊 EC2

亚马逊灵活的EC2(ElasticCompute Cloud)允许你在*少的硬件条件下创建所需的虚拟系统。亚马逊EC2与Ubuntu服务器版本中的模块性、虚拟技术、一系列的应用软件和高效的执行度完美的配合。两者结合起来可以让企业在几分钟内建立灵活、符合企业需求的虚拟系统。

安全性

(1)建立安全性

Ubuntu服务器版本内核很安全,因为它是基于安全性很好的Debian操作系统。Ubuntu安全设计团队、Debian和一些Linux同行一起合作,来确保设计的系统能够及时发现并修复漏洞。Ubuntu免费公平的使用方式也意味着补丁包对于用户都是公开的,而不仅仅只是企业客户和订阅者。

(2)防火墙不复杂

Ubuntu服务器也引入简单易用的安全功能——这是一项*有用的安全技术,因为它可以减少安全管理中的“用户错误”因素。比如,防火墙会提示你为网络的数据通道指定你想要的(SMTP,HTTP,etc)协议。Ubuntu服务器没有默认的网络协议,所以即使首次安装管理员不熟悉的服务,也不会有安全隐患。

(3)通过AppArmor实现访问控制

AppArmor迅速的成为开源服务默认的强制访问控制工具。AppArmor允许系统管理员为每一个程序加入一个安全描述,限制非“安全”程序的访问和控制权力。AppArmor在传统的UNIX的任意访问控制的基础上额外增加了一些规则来控制程序的访问权限。这完全是 “学习”传统的设立规则方式,使其成为一种强制的标准而被广泛应用。

另一项功能是帮助你在服务器主目录下建立一个加密的私有目录,存储那些重要的秘密数据,用户名和登录信息。这是系统管理员为系统管理员设计的,那些有数据访问控制需求的管理员可以考虑花点时间来创建它。这种方式使用起来很方便。

管理员

(1)方便的管理方式

Ubuntu服务器让系统管理员工作起来更简单高效。Ubuntu的核心是Debian,而Debian是一款由系统管理员专门为系统管理员设计的Linux发行版,以高的安全性和易管理性闻名。所以有很多耗时的管理任务都被设计成简单、自动的。

(2)自动化部署更省时间

自动化部署是Ubuntu结构中的一项关键技术。原来为服务器增加一些相同或者简单的任务时,共同的一点就是配置过程需要消耗好几个小时。但是现在通过Ubuntu服务器,你可以建立可复制且独立于硬件的部署方案,加入你需要的应用程序中。只需几分钟就可以部署完成。Ubuntu服务器支持为主机提供部署方案。

(3)轻松获取应用包

Ubuntu用户通过Debian的包体系可以节省时间。每次的版本更新,Ubuntu服务器都会自动加入更多的服务部署标准,从原来的LAMP(Linux,Apache,MySQL,PHP/Python)栈到后来的java到现在的云计算。增加应用包可以从开源“体系”仓库中获得,随着不断扩展的Ubuntu体系,可以从Launchpad(PPA)中获得个人增加的应用包,或者一个公司也可以用自己打包应用程序来部署。

(4)通过启动板轻松管理

管理、监管、维护你的IT环境,启动板简洁的管理让用户管理多台机器就像管理一台般轻松。用户可以通过一个简单的Web终端来管理网络上的虚拟机和物理机,比如订阅服务或者是防火墙部署。

SSH如何通过公钥连接云服务器

通常我们连接远程服务器(linux)windows下通过putty或xshell等工具远程连接。linux下可以直接通过ssh命令连接。其实这两者都是一致的,都是通过ssh协议进行传输。

%title插图%num

如果我们的windows没有安装putty等工具,但是有git-bash的话也可以直接通过ssh来连接。通过以下命令:

ssh root@ip/主机名/域名/
接下来会叫你输入密码,成功输入后即可连接成功。但是这样每一次都要输入面码,我们可以编写一个shell脚本,类似于:conn_vps.sh这样的文件

首先,打开git-bash(桌面上右击,选择Git Bash Here。) $ 为gitbash的命令提示符, # 为注释,非命令不必输入。下同

$ cd ~ # 进入到用户家目录
$ mkdir sh # 新建一个sh目录,用于存放shell脚本。
$ cd sh # 以上都是我的个人习惯。不必和我一样
然后新建该文件

$ vim conn_vps.sh
进入vim模式,按i键即可编辑,输入以下内容:

#!/bin/bash # 这一行必须要写,非注释
ssh root@ip/主机名/域名 # 输入你自己的远程主机ip等
此时按,ESC键,再按:wq保存退出。

现在即可运行该脚本:

$ ./conn_vps.sh
$ sh conn_vps.sh # 这两条命令,任意一条都可以运行
当然如果你在本身就在linux环境下,需要赋予执行权限,像下面这样。和我一样在git-bash中创建的,不需要这一步,本身就有执行权限。

$ chmod 755 conn_vps.sh
然后再执行,然后你会发现依然会输入密码,这是当然的,我们刚才只不过是把刚才的命令简单的脚本了一下。

接下来SSH的密钥分发。

查看是否有密钥

$ ll ~/.shh/ # 查看是否有id.rsa,和id.rsa.pub两个文件。
如果没有的话,可以生成一个。有的话跳过这一步

$ ssh-keygen -t rsa -C “jan.mail@foxmail.com” #这部其实可以不加邮箱参数,但是git配置github连接需要。
#所以*好一次性做了,用一样的密钥。邮箱换成你自己的邮箱。

连续三次回车,如果不设置密码的话。

%title插图%num

接下来,上传公钥到远程服务器

$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器的ip/主机名/域名
然后运行conn_vps.sh。*次还是需要输入一遍密码,如果出现以下提示符即算成功。

Now try logging into the machine, with: “ssh ‘root@你的ip'”
and check to make sure that only the key(s) you wanted were added.
这样就算成功了,在运行conn_vps.sh,即可连接上你的服务器。

如何你要多个云服务器。root密码可以弄得复杂些,然后通过这样的方式连接云服务器。yeah!大功告成!嗯,既然我们可以登录上去了,那我们去看看远程机器上(linux)的情况。

输入ll .ssh/

[root@ten ~]# ll .ssh/
total 4
-rw——- 1 root root 401 Sep 10 20:47 authorized_keys
如果你的远程机器上没有生成ssh-keygen,就会只有一个文件,authorized_keys翻译过来就是认证的密钥。而这个认证的密钥就是前面那条命令的的 ~/.ssh/id_rsa.pub 的内容。

%title插图%num

所以这条命令 ssh-copy-id -i ~/.ssh/id_rsa.pub root@远程服务器的ip/主机名/域名就是把id_rsa.pub的内容粘贴到authorized_keys中。如果另一台客户端也想连接到这台远程服务器。可以用同样的命令来一遍,也可以直接用cat查看id_rsa.pub,再在服务端用vim打开authorized_keys文件。粘贴进去,之前的不要删除,换一行即可。

当然如果你不想用ssh-copy-id -i命令,那你就得记住authorized_keys这个单词~

服务器运维基础指南

#服务器运维基础指南

作为一个开发人员,对于服务器的操作不可避免。*常用的操作就是部署应用到服务器,及在生产,测试环境通过查看日志排查问题。

一般服务器都是linux操作系统并且是无图形界面的,所以进行任何操作都是通过命令行,由于从新一代程序员接触电脑都是从图形界面开始,所以在开始使用命令行的时候都不是很习惯,如果使用命令行习惯了,发挥现命令行可以干很多有趣,高效率的事情,提高生产力,让程序员更加专注在高技术含量的工作中。

##链接服务器入口
mac使用自带的终端,就可以直接登录服务器。windows需要下载工具例如:xshell

##登录服务器ssh
登录服务器有两种方式:

通过密码登录
免密码登录
ssh -l user ip/域名

ssh: secure shell 安全外壳协议,专为远程登录会话和其他网络服务提供安全性的协议。利用ssh协议可以有效防止远程管理过程中的信息泄漏问题。

###通过密码登录

输入: ssh -l user ip/域名

user:登录用户名

ip/域名: 服务器所属的公网id地址,或者应用的域名,如果要查看域名解析后的ip,在命令行输入 ping 域名,可以查看应用所属的公网ip(前提服务器没有做均衡负载,代理…)。

终端会提示你输入密码,此时输入密码,密码正确就可以登录服务器。

###免密码登录
免密码登录方式*次还是需要输入密码登录,不同的是,在登录之后把自己的密钥加入到服务器,下次就可以免密码登录。

生成ssh key
登录进服务器进入 ~ 目录下的 .ssh 打开 authorized_keys 文件如果没有则创建,把自己的公钥加入到authorized_keys里。之后再次使用ssh进入服务器的时候,不用输入密码就可以直接登录。

小技巧:mac可以新建一个.sh文件把ssh -l user ip/域名加入.sh文件,放在桌面默认使用终端打开,以后就可以双击.sh文件直接进入服务器(甚至可以在.sh写其他命令实现自动化)。

##退出服务器exit
exit

##查看当前目录位置 pwd
pwd

##显示当前目录下的所有文件ls

ls :列出当前目录下的所有文件

ls -l :列出当前目录下的所有文件及文件的详情

##进入退出目录cd

cd … :返回到上级目录
cd /. :返回根目录
cd 目录名 : 进入具体目录

##新建目录mkdir
mkdir file/filename

##启动运行脚本./

./xx.sh

##查看文件内容cat/tail

cat xxx.xx :查看文件的所有内容

tail -n 行数 xxx.xxx : 查看文件末尾xx行数

vi/vim xxx.xxx : 查看并且可以修改文件内容

##移动文件到具体目录 mv

mv xx sss : 移动xx文件到sss目录

建议删除文件时,先把文件移动到 /tmp目录下(linux的临时目录关机会清空,建议在此目录下进行删除)。

##删除文件 rm

rm -f xxx :强制删除文件

rm -rf xxx : -r 表示向下递归删除 -f 删除不提示 注意: rm -rf (不跟参数)会删除整个系统 , 就算有参数 linux没有回收站的概念 慎用慎用

rm -f *. * :梅花大法慎用,可能会误删除删除整个服务器

##修改文件的用户权限chown/chmod
chown -R user:user file :修改文件的用户权限 文件支持通配符

chmod 777 xxxx :改变文件权限 777就是高权限(读、写、执行 )登录用户他所在的组和其他人都有*高权限。(比较危险的操作)

###查看java程序的相关进程jps

jps :查看java程序进程

###拷贝文件到具体目录cp/scp

cp -r copyed copy : 把copyed复制到copy目录

scp xxx root@ip:/目录 : 复制xxx到远程ip服务器目录下

###启动服务关闭终端继续运行nohup

有时我们需要在服务器运行一些jar打包的应用,关闭终端后应用就关闭我们可以在 启动jar应用的命令前增加 nohup

###解压/压缩文件 unzip/zip

unzip -o xxx.xx -d sss :解压文件xxx.xx到sss并且全部覆盖

zip -r xxx.zip ./* : 压缩文件当前目录下的所有文件

如果没有unzip zip 命令执行,可以安装unzip/zip

yum install -y unzip zip

##总结
目前这些命令基本能够满足日常开发韵味服务器,但这只是简单的一些操作服务器的命令,如果有更多的需求可以系统的学习linux,那也是一个很大的话题 运维。
————————————————
版权声明:本文为CSDN博主「我爱看明朝」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013565163/article/details/79071026

服务器之间如何实现负载均衡的知识

企业实现服务器负载均衡常见的四种方法
为了提高服务器的性能和工作负载能力,企业通常会使用DNS服务器、网络地址转换等技术来实现多服务器负载均衡,特别是目前企业对外的互联网Web网站,许多都是通过几台服务器来完成服务器访问的负载均衡。

目前企业使用的所谓“负载均衡服务器”,实际上它是应用系统的一种控制服务器,所有用户的请求都首先到此服务器,然后由此服务器根据各个实际处理服务器状态将请求具体分配到某个实际处理服务器中,对外公开的域名与IP地址都是这台服务器。负载均衡控制与管理软件安装在这台服务器上,这台服务器一般只做负载均衡任务分配,但不是实际对网络请求进行处理的服务器。

一、企业实现Web服务器负载均衡

为了将负载均匀的分配给内部的多个服务器上,就需要应用一定的负载均衡策略。通过服务器负载均衡设备实现各服务器群的流量动态负载均衡,并互为冗余备份。并要求新系统应有一定的扩展性,如数据访问量继续增大,可再添加新的服务器加入负载均衡系统。

对于WEB服务应用,同时有几台机器提供服务,每台机器的状态可以设为regular(正常工作)或backup(备份状态),或者同时设定为 regular状态。负载均衡设备根据管理员事先设定的负载算法和当前网络的实际的动态的负载情况决定下一个用户的请求将被重定向到的服务器。而这一切对于用户来说是完全透明的,用户完成了对WEB服务的请求,并不用关心具体是哪台服务器完成的。

二、使用网络地址转换实现多服务器负载均衡

支持负载均衡的地址转换网关中可以将一个外部IP地址映射为多个内部IP地址,对每次TCP连接请求动态使用其中一个内部地址,达到负载均衡的目的。很多硬件厂商将这种技术集成在他们的交换机中,作为他们第四层交换的一种功能来实现,一般采用随机选择、根据服务器的连接数量或者响应时间进行选择的负载均衡策略来分配负载。然而硬件实现的负载控制器灵活性不强,不能支持更优化的负载均衡策略和更复杂的应用协议。

基于网络地址转换的负载均衡器可以有效的解决服务器端的CPU和磁盘I/O负载,然而负载均衡器本身的性能受网络I/O的限制,在一定硬件条件下具有一定的带宽限制,但可以通过改善算法和提高运行负载均衡程序的硬件性能,来提高这个带宽限制。不同的服务类型对不同的服务器资源进行占用,我们使用的负载衡量策略是使用同一个负载进行评估,这对于大多数条件是适合的,然而*好的办法是针对不同的资源,如CPU、磁盘I/O或网络I/O等,分别监视服务器负载,由中心控制器选择*合适的服务器分发客户请求。

三、使用DNS服务器实现负载均衡

访问企业网服务器的用户急剧增加,一台服务器难以满足用户的访问需要,那么如何才能保证用户的正常访问呢?解决方法有很多,如使用Windows 2000或Windows Server 2003提供网络负载均衡服务,但该服务的设置非常复杂。而通过DNS服务器实现网络负载均衡则是一种比较简单的方法。

企业网通常由很多子网构成,为了降低网络中的数据流量,客户机*好能访问处于同一子网内的Web服务器。虽然实现了网络负载均衡功能,但并不能保证客户访问的是本子网的Web服务器。其实这个问题也很好解决,只要启用DNS服务器的“启用网络掩码排序”功能即可。在DNS管理器窗口中,右键点击DNS 服务器,在弹出的菜单中选择“属性”,然后在属性对话框中切换到“高级”选项卡,勾选“服务器选项”列表框中的“启用网络掩码排序”选项即可。这样客户机每次都能访问到本子网内的Web服务器了。完成以上设置后,就使DNS服务器实现了网络负载均衡功能,把客户的访问分担到每个Web服务器上,并且还减少了跨子网的网络通信流量,大大降低了企业网的通信负担。

四、企业实现SQL Server数据库服务器负载均衡

MS SQL Server数据库服务器可以说是应用范围*广的数据库产品,并且越来越多地在大型和比较关键的应用系统中提供服务。当企业应用越来越复杂、数据量越来越大的时候,SQL Server数据库要不停的进行处理、存储、查询的工作,这个时候企业就要考虑SQL Server数据库服务器的性能和速度及安全性了。然而,长期以来,SQL SERVER数据库服务器都只有“热备”的解决方案,而没有“负载均衡”和“集群”的解决方案。

随着数据库路由器软件ICX的出现,为基于MS SQL Server的数据库系统提供了一种更优秀的集群解决方案。它可以真正的实现SQL Server数据库服务器的动态负载均衡,提高性能和速度;它可以真正的保证SQL Server数据库服务器不间断的提供服务,在服务器发生故障的时候实时切换到其他服务器上继续提供服务,切换时间为“零”。数据库路由器是实时并发数据库事务处理同步×××和负载平衡器。

所有的数据库客户都通过ICX访问数据库。当访问、查询SQL Server数据库的时候ICX可以根据实际情况分配服务器来提供服务,大大提高服务速度和优化性能,完成负载均衡。ICX可以同时连接多台数据库,这若干台数据库的内容在任何时刻由ICX保证是完全一致的。也就是说,ICX采用了全新的并发事务处理的方式,向连接的N台数据库同步复制事务处理,使得系统在任何时刻具有多个一致的*新逻辑数据库数据集。当其中一台数据库服务器发生故障的时候,ICX可以实时的、*时间切换到其他服务器上来继续提供服务。真正的实现零时间的服务器切换,大大提高安全性,真正意义的实现服务器不间断服务。

原理:

负载平衡把每个IP数据包按某种规则分发到服务器节点,不同的负载平衡实现方式有不同的分发规则。对客户端来说负载平衡系统是透明的。采用网络负载平衡技术的服务对单个客户端请求的响应并比单个主机快,但对大量客户端的密集请求在速度与质量有很大优势。并且当某个主机发生故障或脱机时,不会影响服务的提供,从而带来了高可用性。

负载平衡的不同实现方法

4.1 利用网络设备的动态网络地址转换(NAT)功能实现负载平衡

实现负载平衡的要求:

具备动态NAT功能的路由器,多台运行同一服务的服务器,所有服务器要求在同一局域网内。

负载平衡的设计与配置过程:

内部的多台服务器,有自己的私有IP,提供相同的服务, 但对外映射通过网络地址转换(NAT)成为一个统一的公网IP地址,对外部来讲多台服务器是捆绑在一起的一个虚拟服务器,外部访问这个虚拟服务器时,轮流指向各台服务器,从而达到负载均衡。

例如:以下网络中

路由器动态NAT配置过程如下:(以思科路由器为例)

Router(config)#int f0/1

Router(config-if)#ip address 192.168.1.1 255.255.255.0

Router(config-if)#ip nat inside

Router(config-if)#int s0/0

Router(config-if)#ip address 133.0.0.1 255.255.255.252

Router(config-if)ip nat outside

Router(config-if)#exit

Router(config)#ip nat pool p2 192.168.1.2 192.168.1.4 netmask 255.255.

255.0 type rotary

Router(config)#access-list 2 permit 133.0.0.33

Router(config)#ip nat inside destination list 2 pool p2

Router(config)#ip route 0.0.0.0 0.0.0.0 s0/0

优、缺点:配置简单,成本低,服务器在本地便于维护,负载平衡算法由路由器提供,不需占用服务器系统资源。但是一般只能支持轮流服务的算法,不能根据服务器性能进行合理的负载分配。

4.2 DNS的负载平衡实现

负载平衡的要求:

要求DNS服务器的支持,一般支持bind8.2以上的类unix系统,安装一个循环复用DNS软件。

负载平衡的设计与配置过程:在DNS中为多个地址配置同一个名字,因而查询这个名字的客户机将得到其中一个地址,从而使得不同的客户访问不同的服务器,达到负载均衡的目的。配置过程在不同的DNS系统中有不同的配置方法,本文不再多述。

优、缺点:服务器可以分布在不同的地域,有利于故障转移。负载平衡算法运行在DNS服务器上,不占用服务器资源。

但是域名服务器无法知道服务结点是否有效,如果服务结点失效,域名系统依然会将域名解析到该节点上,造成用户访问失效。另外,它不能区分服务器性能的差异,也不能反映服务器的当前运行状态。因此,在动态平衡特性上,动态DNS轮询的效果并不理想。

4.3 利用操作系统的群集功能实现负载平衡

负载平衡的要求:

要求使用支持群集功能的操作系统如:windows 2000server以上的服务器版本,Unix或Linux。本文以windows2003 server为例介绍群集功能的配置。

负载平衡的设计与配置过程:群集的实现需要群集内部的通讯以及管理和内容复制的数据传输。这部分通讯占用了网络的可用带宽。为了克服单网卡的局限性,一般使用双网卡,一个用于负载客户端的通讯,另一个用于传输内部通讯,管理和内容的数据。

群集操作模式的选择是设计的重要一步。单播模式是指各节点的网络适配器被重新指定了一个虚拟MAC(由02-bf和群集IP地址组成确保此MAC的唯一性)。多播模式下,网络适配器在保留原有的MAC地址不变的同时,还分配了一个各节点共享的多播MAC地址。一般选用多播模式。

端口规则是windows2003的新特性。NLB提供3种筛选模式,可以针对端口规则采取禁止、多主机负载平衡和单主机的特殊处理。其中,多主机筛选模式提供了真正意义上的负载平衡,并且可以根据节点的实际处理能力进行负载量的分配。

Windows2003引入了网络负载平衡管理器(控制面板->管理工具),使负载平衡的安装和配置更加简单。管理器可以容易的实现群集的建立、删除,节点的添加、删除、修改以及故障的检测。

运行网络负载平衡管理器,选择 群集 -> 新建 ,弹出“群集参数”对话框,然后根据向导按需要配置。

首先配置好参数后点击下一步,系统会提示添加附加群集IP,如果不需要可直接按“下一步”进行端口配置。以web群集配置为例:如果会话状态不保存在该群集上,则相似性选择无,否则选择单一或者类C。

之后,指定一台主机连接,并选择一个可用的网络接口,进行主机参数的设置:点击“完成”,管理器会自动连接到主机上进行相关配置来创建一个新的群集。

优、缺点:选择多主机筛选模式时提供了真正意义上的负载平衡,并且可以根据节点的实际处理能力进行负载量的分配。比较适用于大型网站负载平衡的实现。但使用Unix, Windows 2003 server系统实现时,网络架构成本较高。

如何把家里的pc改装成linux服务器

家里有一台pc笔记本闲置在家,*近想搭建一个ubuntu系统玩一下kvm。

这个方法能避免家里宽带每隔一段时间ip自动变换。

我用到了:

1.亚马逊的aws(ec2)

2.家里的路由器

3.aws里装了一个http server

4.ubuntu系统定时执行一个简单的脚本

网络的架构图:

%title插图%num

1.把pc的win7系统改造成双系统(另一个装ubuntu)

具体方法见:http://www.cnblogs.com/dodng/p/5792811.html

 

2.修改家里的路由器配置

A:找出pc中ubuntu系统的本地ip

B:修改路由器配置,把宽带的端口22流量透传到本地ip上,即传到ubuntu系统中。

 

3.在aws里运行一个http server

例如:python -m SimpleHTTPServer 8008

 

4.ubuntu系统执行定时任务访问aws的http server

*简单的wget或curl服务即可。

 

1.ubuntu系统定时访问http server

2.那么通过访问aws的http server日志,就知道你家里宽带的外网ip(即时变换也没事)

3.通过ip+22端口就可以ssh到你家里的linux系统了。