10分钟 在云中打造一个免费Gemstone服务器
- +1 你赞过了
关于配置
你应该已经发现这个问题了,虽然计数器,任务和“create a component”样例都和预期的一样,在正常地运作,但是“/browse”命令, “/config”命令和指向JQuery样例的链接却返回403错误(unauthorised)和404错误(not found)。此外,底部的Seaside工具栏也消失了。这样设计主要是为了让这个环境更加安全——你的实例现在依赖于互联网了。下面几个小节将会为您讲述如何把你自己的代码载入到你的远程实例中,以及如何访问“/config”。
不止是一个欢迎屏,通过“/pier”命令,你还可以使用默认安装的Pier(关于Pier,具体可以参考://www.piercms.com/)。Pier是一个构建在Seaside之上的,强大而灵活的内容管理系统,因为它支持Blog,所以它是这种站点的理想选择。
访问“/config”命令
使用上面提到的那个公用的DNS地址,使用用户“seasideuser”ssh到新创建的实例:
ssh -L 8888:127.0.0.1:80 seasideuser@ec2-46-51-165-46.eu-west-1.compute.amazonaws.com |
你应该会看到一些类似于这样的东西:
$ ssh -L 8888:127.0.0.1:80 seasideuser@ec2-46-51-165-46.eu-west-1.compute.amazonaws.com The authenticity of host 'ec2-46-51-165-46.eu-west-1.compute.amazonaws.com (79.125.98.212)' can't be established. RSA key fingerprint is de:96:12:b7:d0:9e:63:69:37:5a:4b:08:20:68:45:b6. Are you sure you want to continue connecting (yes/no)?yes Warning: Permanently added 'ec2-46-51-165-46.eu-west-1.compute.amazonaws.com,79.125.74.150' (RSA) to the list of known hosts. Last login: Wed Dec 29 18:25:11 2010 from 93-96-148-251.zone4.bethere.co.uk
See /etc/image-release-notes for latest release notes. :-) |
现在,你应该可以浏览“//localhost:8888/config”,访问相应的配置了。参数“-L 8888:127.0.0.1:80”表示服务端的localhost上的数据应该传送到客户端的localhost:8888上,同时,Web服务器会被配置成只能通过localhost来访问“/config”命令。
还有一个日志界面,也被配置成只能通过localhost来访问;浏览/tools/objectlog(用户名: admin, 密码: tool)可以访问这个界面。
把你自己的代码载入到你的Gemstone实例中
如果你已经登录到你的远程实例了,那么先“exit”这个实例,然后用下面的命令行ssh回来:
$ ssh -X -C seasideuser@ec2-46-51-165-46.eu-west-1.compute.amazonaws.com |
这应该会产生一些类似于这样的东西:
$ ssh -X -C seasideuser@ec2-46-51-165-46.eu-west-1.compute.amazonaws.com Warning: untrusted X11 forwarding setup failed: xauth key data not generated Warning: No xauth data; using fake authentication data for X11 forwarding. __| __|_ ) Amazon Linux AMI See /etc/image-release-notes for latest release notes. :-) |
“-x”参数支持X11传送,“-C”压缩。这可以让你在你的远程实例上打开GemTools,但是那个窗口会传送(X11)到你本地计算机的显示屏上。
GemTools是一个Pharo环境,它可以让你连接到Gemstone,载入和修改代码,以及通过一个GUI环境来执行一些管理操作(例如启动和关闭服务器,备份和恢复数据库等等)。
启动Gemtools:
$ ~/gemtools.sh |
然后,按“Login”按钮连接到运行在你的实例中的Gemstone服务器:
你现在应该已经登录到你的Gemstone服务器了:
现在,你可以使用Monticello把你的代码载入到你的远程实例中。点击“Tools”按钮,然后选择“Monticello”。添加包含你的代码的代码库,然后正常载入。你还可以使用Metacello 和 Gofer来载入代码。
使用GemTools
虽然当GemTools运程运行在你的实例中的时候,在GemTools中,你也可以高效率地完成一些工作,但是,你可能会发现,使用VMWare GLASS virtual appliance,或者把Gemstone安装到你的本地机器上,在一个Pharo映像中完成这些工作,效率会更高一些。
有待改进
1,我尚未配置任何监控软件
2,如果他们崩溃了,没有办法重新启动Gems
3,没有提供数据库备份机制。
4,我还没有配置邮件服务器。
《Glass Daemon Tools》这篇文档详细地讲述实现其中一些改进的方法。
为了改进你自己的配置,你可以使用这个配置作为基础,然后,在社区中分享你自己的配置。创建和分享一个经过修改的配置都是十分简单的。
让你的实例更加安全
有很多种方法可以让你的实例更加安全,这是其中的三种方法(注意:这并不是一个完整的列表):
1,让你的系统软件处于最新状态
2,要求提供一个sudo密码
3,改变SSH的端口
1,让你的系统软件处于最新状态
定期地运行:
sudo yum update |
2,要求提供一个sudo密码
首先,你必须为seasideuser设置一个密码:
$ passwd Changing password for user seasideuser. New password: |
然后编辑/etc/sudoers:
sudo vim /etc/sudoers |
把这一行:
seasideuser ALL = NOPASSWD: ALL |
改成:
seasideuser ALL = (ALL) ALL |
现在,当你执行使用sudo的命令的时候,你必须要提供一个密码。
3,改变SSH的端口
默认的SSH端口是22端口,许多人都会攻击这个端口。这就是说,ssh到这个实例的唯一方法是使用RSA密钥。此外,root访问也应该禁用(这是一种常见的攻击方法)。但是,如果你想更谨慎一些,你可以改变SSH的端口(但是,我怀疑这种方法提供的保护对确定性的攻击是无效的)。
首先,你应该在你的防火墙上打开新的端口。从“Amazon AWS EC2”标签中选择“Security Groups”,然后选择和你的实例相关的安全组。添加新的端口。
接下来编辑/etc/ssh/sshd_config
sudo vim /etc/ssh/sshd_config |
然后把这一行:
Port 22 |
改成你的新端口,比如说20001:
Port 20001 |
重新启动ssh daemon:
sudo /etc/init.d/sshd restart |
接下来“exit”你的实例,然后使用你的新端口来登录:
ssh -p 20001 seasideuser@ec2-46-51-165-46.eu-west-1.compute.amazonaws.com |
最后,你可以重新编辑你的防火墙,移除对22端口的访问。
补充资料
这个实例的配置已经记录到以前的一篇博文中了:
《Installing Gemstone on an Amazon EC2 Linux instance》:Installing Gemstone on an Amazon EC2 Linux instance
最新资讯
热门视频
新品评测