【问题标题】:How can I host a python server script, on a cloud hosted server (Google, Amazon, Azure...)?如何在云托管服务器(Google、Amazon、Azure...)上托管 python 服务器脚本?
【发布时间】:2016-09-07 13:24:39
【问题描述】:

让我先回答显而易见的问题。我为什么要这样做?事实上,我没有。我在下面制作了以下程序,但它旨在在远程服务器上运行。我基本上使用的是套接字库,但我想将它托管在另一台机器上,最好是谷歌、亚马逊、天蓝色等。但是,正如我在尝试之前所知道的那样,这有点不可能。谷歌应用引擎给了我一个错误,比如“访问拒绝套接字等等等等”。

我觉得我有两个选择:

我可以继续在我自己的服务器上运行此代码,如果我能弄清楚如何在托管的云基础服务器上托管此服务器脚本,或者我可以获取不包含服务器部分的每一位代码,并使其通过 POST 请求从客户端获取“数据”。

数据是从客户端发送的...

bap = {}
while 1:
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    server_address = ("localhost", 8081)
    #print 'starting up on %s port %s' % server_address
    server.bind(server_address)
    server.listen(5)
    connection, client_address = server.accept()
    #print 'connection from', connection.getpeername()
    server.close()
    data = connection.recv(4096)

    if data in bap:
        print data + " is checking in!!!"
        for k, v in bap.iteritems():
            if k == data:
                bap[k] = 10
                print bap
                c = open('check.json', "w")
                wiz = json.dumps(bap)
                c.write(wiz)
                c.close()
            else:
                bap[k] -= 1
                if bap[k] < 0:
                    print k + " is Offline!!!"
                    mail()
                    c = open('log.txt', "a")
                    wiz = json.dumps(bap)
                    time1 = datetime.datetime.now().strftime("%m/%d/%y %H:%M ")
                    c.write(k + " is offline!!! "+ time1 + "\n")
                    c.close()
                else:
                    print bap
    else:
        bap[data] = 10
        print data + " was added!!!"

【问题讨论】:

  • 不是很清楚你想做什么?你想在某个地方运行这个脚本,然后从另一台机器向它发布数据吗? data 是什么?
  • 我编辑得更好一些。基本上,我有使用套接字连接到服务器的客户端。他们通过套接字连接发送简单的字符串数据。所以我想把服务器托管在我家的云端。
  • 您是否仍希望您的脚本监听云服务器和客户端上的套接字以向其发布数据?此外,除非您对使用低级套接字有特殊要求,否则我建议您使用简单的 bottle 来运行可以接收 HTTP Post 的简单应用程序。
  • 我最近听说过bottle,并将对其进行深入研究。我更喜欢它在云中,24/7 可用,因为没有重要数据被传递,客户端只是检查服务器。

标签: python server cloud hosting python-requests


【解决方案1】:

可以在 Amazon EC2 上运行侦听外部端口的 python 脚本。

1) 使用管理控制台Amazon Web Services 创建一个 EC2 实例。

2) 编辑与您的实例关联的安全组,以便它打开您希望 Python 脚本监听的端口号。

3) 在 EC2 实例上上传并运行您的脚本。确保您的脚本正在侦听的端口号与您在安全组中打开的端口号相同。

如果您通过 SSH 连接到您的 EC2 实例,您可能希望使用类似TMUX 的方式在“后台进程”中运行 python 脚本。否则,当您终止 SSH 连接时,您的 python 脚本将停止运行。

【讨论】:

  • 很高兴知道 :) 我一定会调查的。
猜你喜欢
  • 1970-01-01
  • 2018-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2016-07-25
  • 1970-01-01
  • 2013-02-27
  • 2011-12-13
相关资源
最近更新 更多