
链接:http://zhuanlan.zhihu.com/p/20226040
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
以下是主要步骤,前提是,拥有一个虚拟机,并且有ssh账号登陆。没有的同学可以自己在阿里云之类的服务商处申请,个人推荐”1元免费试用“1个月的微软云。一般这些主机服务商都会提供一个基本的教程,因此从设置主机直到创建账号,ssh登陆都应该不是什么问题。
接下来,下载miniconda,一个科学计算环境管理软件,Anaconda的最小发型版本(假设运行的是64位Linux 虚拟机):
wget "https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh"
然后安装:
sudo bash Miniconda-latest-Linux-x86_64.sh
然后通过miniconda的环境管理软件,conda安装必要被ipython和ipython-notebook.
conda install ipython
conda install ipython-notebook
接下来,我们需要创建一个名为nbserver的配置。
ipython profile create nbserver
这将创建一个文件夹,其中包含一些原始的配置文件。我们跳转到这个文件夹进行一些配置
cd ~/.ipython/profile_nbserver/
由于ipython Notebook要求https连接,因此我们需要创建一个ssl证书。
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
命令执行后根据提示输入信息就好,当然,这个证书并未获得认证,因此用chrome之类的浏览器访问的时候会得到一些错误信息,这个问题我们一会儿说。接下来我们创建一个密文的密码。
python -c "import IPythonprint IPython.lib.passwd()"
运行之后进入一个创建密码hash值的小程序,根据提示输入你想用的安全口令:
Enter password:
Verify password:
sha1:b86e933199ad:a02e9592e59723da722.. #这是我的密码的hash值,后段被删除,你的密码得到的结果应该不同
然后开始编辑配置文件,通过vi编辑文件的命令如下:
vi ipython_notebook_config.py
这个文件可能不存在,那么通过vi创建一个,配置文件的内容如下:
c = get_config()
# 所有matplotlib的图像都通过iline的方式显示
c.IPKernelApp.pylab = 'inline'
# 这一行指向我们刚刚创建的ssl证书
c.NotebookApp.certfile = u'/home/azureuser/.ipython/profile_nbserver/mycert.pem'
# 给出刚刚创建的密码的哈希值
c.NotebookApp.password = u'sha1:b86e933199ad:a02e9592e5 etc... '
c.NotebookApp.ip = '*'
# 给出运行的端口,ipython默认为8888
c.NotebookApp.port = 8888
# 禁止在运行ipython的同时d出浏览器
c.NotebookApp.open_browser = False
编辑完成以后按两次shift+z 保存退出
配置完毕以后就可以运行ipython Notebook的服务端了:
jupyter notebook --config=/home/azureuser/.ipython/profile_nbserver/ipython_notebook_config.py #给出你刚才创建的nbserver路径,这里为微软azure云默认的情况
当然,微软云还需要配置一下服务器端的endpoint,将云主机的https端口(443)指向内部的8888端口。
在你的浏览器地址栏输入:
https://www.youappdomain.com
这时候会遇到https提示根证书并非认证证书,不用管这个提示继续进入,voila,你的ipython Notebook server架好啦!
输入你刚才创建的密码,就可以开始像在本地一样使用了。
您好,基于云开发的应用程序不需要任何服务器和云服务资源的优势在于其无需管理服务器和基础设施,可以大大减少开发人员的工作量和成本。以下是基于云开发不需要任何服务器和云服务资源的一些例子:1. 无服务器计算(Serverless Computing):无服务器计算是一种新型的云计算模型,它允许开发人员编写代码,而不需要考虑服务器的配置和管理。例如,AWS Lambda、Azure Functions和Google Cloud Functions等云服务提供商提供了无服务器计算服务,开发人员可以在这些服务上编写代码,而无需考虑服务器的配置和管理。
2. 基于容器的开发(Container-based Development):容器技术可以将应用程序打包成一个独立的可执行文件,这样可以在不同的环境中运行。例如,Docker是一种流行的容器技术,开发人员可以使用Docker来打包应用程序,然后将其部署到云上,而无需考虑服务器和基础设施的管理。
3. 云存储服务(Cloud Storage Services):云存储服务可以提供可扩展的、高可用的存储服务,例如AWS S3、Azure Blob Storage和Google Cloud Storage等。开发人员可以将应用程序的数据存储在云存储服务中,而无需考虑服务器和基础设施的管理。
4. 云数据库服务(Cloud Database Services):云数据库服务可以提供可扩展的、高可用的数据库服务,例如AWS DynamoDB、Azure Cosmos DB和Google Cloud Firestore等。开发人员可以将应用程序的数据存储在云数据库服务中,而无需考虑服务器和基础设施的管理。
总之,基于云开发的应用程序可以大大减少开发人员的工作量和成本,而无需考虑服务器和基础设施的管理。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)