从零开始部署Web服务

假设你已经从亚马逊、SoftLayer等云服务提供商处得到一个Ubuntu虚拟机,一般它们会提供给你一个IP地址、root用户名和密码,或者private key。

  1. 使用root帐号ssh登录到服务器。
    #如果提供的是用户名和密码
    ssh root@ip
    #如果提供的是用户名和private key
    ssh root@ip -i ~/.ssh/private_key

  2. 使用root账户是一件危险的事,因此,登录后的第一件事就是创建一个新用户,并为它分配sudo权限。
    root adduser foo
    #将用户foo添加至sudo用户组,使其拥有sudo权限
    gpasswd -a foo sudo
    #切换foo为登录用户
    su - foo

  3. 为新用户生成private、public key,修改SSH配置,修改ssh默认端口号、禁用密码形式的登录验证。

     #在**本机**生成公钥私钥
     ssh-keygen
     #在虚拟机上foo用户的主目录,创建.ssh/authorized_keys文件,并将生成的公钥粘贴到其中
     mkdir .ssh
     touch .ssh/authorized_keys
     nano .ssh/authorized_keys
     #为该目录和文件分配合适的访问权限
     chmod 700 .ssh
     chmod 644 .ssh/auhtorized_keys
     #退出虚拟机,在本机尝试以公钥私钥的形式登录
     ssh foo@ip -i .ssh/your_private_key
     #登录成功后,修改/etc/ssh/sshd_config,改变默认端口号、禁用密码登录:
     #Port 2200
     #PasswordAuthentication no
     sudo nano /etc/ssh/sshd_config
     #重启ssh服务后生效
     sudo service ssh restart 
     #以新的端口号重新登录
     ssh foo@ip -p 2200 -i .ssh/your_private_key
    
  4. 配置防火墙,仅打开要用到的端口号。

     #首先关闭所有进入端口、打开所有出去端口
     sudo ufw default deny incoming
     sudo ufw default allow outgoing
     #打开ssh端口
     sudo ufw allow 2200/tcp
     #打开HTTP端口
     sudo ufw allow www
     #或者sudo ufw allow 80/tcp
     #打开NTP端口
     sudo ufw allow ntp
     #检查所添加的规则
     sudo ufw show added
     #使防火墙生效
     sudo ufw enable
    
  5. 设置时区
    sudo dpkg-reconfigure tzdata
    #设置NTP同步
    sudo apt-get update
    sudo apt-get install ntp

  6. 更新升级操作系统、安装需要用到的软件。

     #更新软件源列表
     sudo apt-get update
     #升级
     sudo apt-get upgrade
     #安装Apache服务器
     sudo apt-get install apache2
     #安装mod_wsgi
     sudo apt-get install python-setuptools libapache2-mod-wsgi
     #重启apache2使mod_wsgi生效
     sudo service apache2 restart
    

你可能感兴趣的:(从零开始部署Web服务)