【发布时间】:2015-11-25 22:22:20
【问题描述】:
使用 Cloud9 IDE 时,我无法通过 c9users.io 8080、8081 和 8082 上的自定义应用程序允许的端口连接到我自己的服务器。
它是具有 SSL 功能的自定义服务器。当我将它托管在其他地方时,它是可以访问的,但在 Cloud9 上,每次我尝试访问其上的资源时,它都会显示 No data received (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)
【问题讨论】:
标签: ssl ssl-certificate wsgi bottle cloud9-ide