使用Cloud9 IDE时,无法在c9users.io 8080
,8081
和8082
上的自定义应用程序允许的端口上连接到我自己的服务器。
它是具有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/