使用Cloud9 IDE时,无法在c9users.io 808080818082上的自定义应用程序允许的端口上连接到我自己的服务器。

它是具有SSL功能的自定义服务器。当我在其他地方托管它时,它是可访问的,但是在Cloud9上,每次我尝试访问它上的资源时,它都显示未接收到任何数据(Failed to load resource: net::ERR_EMPTY_RESPONSE)。 Python SSLWSGIRefServer日志不显示任何连接尝试。

它可能必须对安全性设置或错误的路径进行处理。

我当前使用的路径显示在此处,并且我的SSL证书是自定义生成的。

https://{workspace}-{username}.c9users.io:{8080|8081|8082}/{path}


这是我要运行的服务器:

import subprocess
from bottle import run, post, request, response, get, route, Bottle, ServerAdapter

def jsonp(request, jsonstring):
    if (request.query.callback):
        return "%s(%s)" % (request.query.callback, jsonstring)
    return jsonstring

@get('/<path>')
def process(path):
    response.content_type = 'jsonp'
    jsonstring = subprocess.check_output(['python',"scripts/"+path+'.py'],shell=False).rstrip('\n')
    return jsonp(request, jsonstring)

# copied from bottle. Only changes are to import ssl and wrap the socket
class SSLWSGIRefServer(ServerAdapter):
    def run(self, handler):
        from wsgiref.simple_server import make_server, WSGIRequestHandler
        import ssl
        if self.quiet:
            class QuietHandler(WSGIRequestHandler):
                def log_request(*args, **kw): pass
            self.options['handler_class'] = QuietHandler
        srv = make_server(self.host, self.port, handler, **self.options)
        srv.socket = ssl.wrap_socket (
         srv.socket,
         certfile='server.pem',  # path to certificate
         server_side=True)
        srv.serve_forever()

srv = SSLWSGIRefServer(host="0.0.0.0", port=8081)
run(server=srv)

最佳答案

Cloud9仅支持端口8080、8081和8082,因此您需要连接到其中一个端口,而不是8000。

有关更多信息,请查看Multiple Ports on Cloud9 IDE

关于ssl - Cloud9 IDE:无法在自定义端口上连接到我的服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33899155/

10-11 02:13