(Ubuntu 14.04 + Apache2.2 + Tomcat7 + MySQL + SFTP)
港南网站建设公司成都创新互联,港南网站设计制作,有大型网站制作公司丰富经验。已为港南1000多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的港南做网站的公司定做!
br /
br /
为了方便多实例部署,同事避免权限重提并提高安全性,我们一般不使用系统的tomcat实例,而是在 用户目录 下再创建一个引用tomcat7的独立实例创建实例,同时为了避免与原tomcat 访问端口8080 和 控制端口8005 冲突,更改新实例端口。
准备工作:
将所有文件打包放到Tomcat文件的 ROOT 下,或者将打包成war包,放在 webapp 文件夹下,tomcat会自动解压。(apache可以放在其他文件夹下不和tomcat放在一起,再由配置文件配置,但是放一起方便上传)
启动:
apache启动,加载 sites-enabled 下的主机配置文件。客户访问链接,默认80端口,根据url、别名或者端口号判断是哪个虚拟主机然后到下面的发布目录 DocumentRoot ,根据后url缀判断是否由tomcat解析。静态文件(根据url后缀)自己解析(设置允许访问目录下的文件夹)。动态交给jkmount,就是之前的work.list内容的名字。然后找到works.properties中上述的名字,找到下面的配置信息,根据 worker.xxx 的 host 和 port 将请求的 url 发送过去。(本案例是发送到本机的对应tomcat实例端口),tomcat根据端口号找到本机相应的实例地址,再根据 url 找到与自己的位置的文件解析。然后响应返回html给JKMount在返回给Apache返回给客户端。
br /
Options Indexes FollowSymLinks MultiViews 禁止显示Apache目录列表
参考资料
root 登陆
在登陆刚启动的 CVM 实例之前,我们需要知道服务器的公网 IP,以及 root 用户的密码。如果你选择的是自动生成密码,那么请查看邮箱。接下来,我们在本地使用如下命令登陆到服务器。
$ ssh root@qcloud-cvm-ip # 请将 qcloud-cvm-ip 替换为实际 IP
按照提示进行操作,输入 root 用户验证所需的密码(可以从腾讯云发送的邮件中找到)。如果这是你第一次使用密码登陆服务器,登陆成功后系统还会提示你更换 root 密码。
root 用户
root 用户是 Linux 环境下的超级管理用户,拥有非常大的权限。由于 root 用户权限过大,不建议大家日常使用 root 账号进行服务器操作。因为有可能会出现让你加班、甚至被开除的意外。
因此,我们接下来创建一个新的用户账号,在日常工作中使用。
创建新用户
以 root 账号登陆服务器之后,我们就可以添加以后经常使用的用户账号了。本文中,我们将创建一个名为demo 的新用户,你可以根据自己的情况选择合适的用户名。
$ adduser demo
系统会要求你回答一些问题,最重要的就是设置该用户的密码。对于其他问题,并不是必须的,可以直接按回车键完成。
添加 root 权限
现在 demo 用户还只是一名普通用户,不具备系统管理权限。我们需要为该用户添加 root 权限。这样,就可以在每个命令前加上 sudo 以管理员权限执行了。
安装 sudo
由于 Debian 8 系统默认没有安装 sudo 包,因此我们先通过 apt-get 安装。
首先,更新 apt 包目录:
$ apt-get update
然后使用下面的命令安装 sudo:
$ apt-get install sudo
现在可以使用 sudo 和 visudo 命令了。
赋予 sudo 权限
为了给新用户添加管理权限,我们需要把新用户添加到 sudo 用户组。Ubuntu 操作系统中,属于sudo 用户组的用户默认可以使用 sudo 命令。
在 root 用户下 ,运行如下命令,将 demo 用户添加到 sudo 用户组:
$ usermod -a -G sudo demo
上面的命令中,-a 选项指的是将用户添加到对应的用户组中,只能配合 -G 选项一起使用。-G 后可以指定多个用户组名称。如 $ usermod -a -G sudo, wwww-data。
添加公钥验证
推荐给新用户添加公钥验证,一来可以避免每次登陆时都要输入密码,二来需要私钥才能登陆可以提高安全性。
生成密钥对
如果没有现成的 SSH 密钥对(由公钥和私钥组成),很容易就可以生成。只需要在本地机器上输入如下命令即可:
ssh-keygen
假如本地用户的名称为 demo,接下来应该会看到如下输出:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/demo/.ssh/id_rsa):
如果你以前没有生成过密钥对,按回车接受默认设置即可。如果有旧的密钥对的话,这样会覆盖以前的密钥对,建议更改为别的文件名。系统还会提示输入口令(passphrase),为了简单起见,我们直接回车使用空口令。如果你输入了口令的话,那么在 SSH 登陆时,除了需要提供密钥之外,还需要输入口令才能登陆。
命令运行结束后,会在本地用户的根目录中的 .ssh 目录下创建一个私钥 id_rsa 和一个公钥id_rsa.pub。记得别公开分享你自己的私钥。
复制公钥
赋值公钥有两种方法,一是通过 sshh-copy-id 脚本自动赋值到远程用户,二是手动安装。
ssh-copy-id 脚本
如果本地机器上安装了 ssh-copy-id 脚本,那么就可以使用该脚本将公钥安装到任何有登陆权限的用户。
运行该脚本,同时指定用户名和服务器的 IP 地址:
$ ssh-copy-id demo@qcloud-cvm-ip
按提示输入登陆密码后,你刚才生成的公钥就会自动赋值到远程用户的 .ssh/authorized_keys 文件中。接下来就可以使用对应的私钥登陆服务器了。
手动安装公钥
使用如下命令打印你刚刚生成的公钥(id_rsa.pub:
$ cat ~/.ssh/id_rsa.pub
打印出来的公钥大致应该是这样子的:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBGTO0tsVejssuaYR5R3Y/i73SppJAhme1dH7W2c47d4gOqB4izP0+fRLfvbz/tnXFz4iOP/H6eCV05hqUhF+KYRxt9Y8tVMrpDZR2l75o6+xSbUOMu6xN+uVF0T9XzKcxmzTmnV7Na5up3QM3DoSRYX/EP3utr2+zAqpJIfKPLdA74w7g56oYWI9blpnpzxkEd3edVJOivUkpZ4JoenWManvIaSdMTJXMy3MtlQhva+j9CgguyVbUkdzK9KKEuah+pFZvaugtebsU+bllPTB0nlXGIJk98Ie9ZtxuY3nCKneB+KjKiXrAvXUPCI9mWkYS/1rggpFmu3HbXBnWSUdf demo@Windows.local
然后,以新用户身份登陆服务器:
$ ssh demo@qcloud-cvm-ip
登陆成功后,应该会进入该用户的根目录。接下来创建一个叫 .ssh 的新目录,然后使用如下命令限制目录权限:
mkdir .ssh
chmod 700 .ssh
700 表示只有目录的所有者才能读、写和执行。
现在使用 Vim 文本编辑器在 .ssh 目录下创建一个名为 authorized_keys 的文件。
$ vim .ssh/authorized_keys
在 Vim 中按 i 进入插入模式,然后 Ctrl + v 粘贴之前赋值的公钥。然后按 Esc 回到正常模式,在英文输入法下键入 :wq 保存并退出文件。
并使用如下命令限制文件的权限:
chmod 600 .ssh/authorized_keys
600 表示文件所有者可读、可写。
之后,你就可以使用私钥验证登陆服务器了,不必重复输入密码。
禁用 root 登陆
在开始配置服务器的时候 ,我们提到了最好不用使用 root 账号登陆服务器。为了确保不会出现这种情况,我们可以修改 SSH daemon 的配置,禁止远程登陆值 root 账号。
以上面配置的管理员用户身份,使用 sudo 命令打开配置文件:
$ sudo vim /etc/ssh/sshd_config
如果想禁止远程 root 登陆,找到下面这行文本:
PermitRootLogin yes
将其修改为
PermitRootLogin no
并保存文件。由于我们已经创建了一个管理用户,而且可以视情况增加权限,禁止 root 账号登陆反而可以让服务器更加安全。
最后,只需要重启 SSH 服务即可让新配置生效。
$ systemctl restart ssh
本地配置 SSH
完成以上配置之后, 以后我们每次只需要 ssh demo@qcloud-cvm-ip 即可登陆服务器。
不过这样还是有点麻烦,每次都得输入用户名和 IP 地址。为了进一步简化操作,我们对本地的 SSH 登陆进行配置。
打开 ~/.ssh/config 文件,然后添加如下配置:
Host qcloud
Hostname qcloud-cvm-ip
User demo
IdentityFile ~/.ssh/id_rsa
之后,只需要执行 ssh qcloud 即可登陆服务器。
您好,希望以下回答能帮助您
Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。
安装Apache2
使用下面这个命令,安装Apache2及其他库。
$ sudo apt-get -y install apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby
更新时区(TimeZone)和检查正确时间
为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携性及责任性法案》(HIPAA)的安全规则要求正确的时间戳机制。
$ sudo apt-get -y install openntpd tzdata
$ sudo dpkg-reconfigure tzdata
$ sudo service openntpd restart
禁止AppArmor冲突
虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。
$ sudo /etc/init.d/apparmor stop
$ sudo update-rc.d -f apparmor remove
$ sudo apt-get remove apparmor apparmor-utils
如您还有疑问可继续追问。
没必要,ubuntu的默认设置就是非必要不打开,所以还是很安全的。另外,默认设置下帐号只有用户权限,只对自己的home目录才有读写权力,所以不需要更多设置了。
另外,ubuntu是家用的,想配置服务器就选用fedora,里面还有安全配置需要自定义