web.py a besoin d'un certificat SSL pour démarrer le port https. S'il n'y a pas de certificat SSL, il peut être généré comme suit.
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt sudo openssl rsa -in server.key -out server.key
L'exemple de programme est le suivant :
# -*- coding: utf-8 -*- """ Created on Mon May 10 20:37:00 2021 @author: Administrator """ import web #web.py urls = ( '/server' , 'server', '/.*', 'notfound' #localhost:port/其他任意界面,访问notfound类 ) class MyApplication(web.application): def run(self, port=8080, *middleware): func = self.wsgifunc(*middleware) return web.httpserver.runsimple(func, ('0.0.0.0', port)) class server: def __init__(self): self.return_msg = {'errorCode': 0, 'msg': '系统正常!'} def POST(self): #POST处理方式与GET一致 # content = web.input() # print('收到消息:', content.key1, content.key2, content.key3) x = web.input(myfile={}) print('xxx: ', x.keys()) return str(self.return_msg).replace('\'', '\"') class notfound: def GET(self): print('--from notfound') return '404 not found' def POST(self): print('--from notfound') return '404 not found' from cheroot.server import HTTPServer from cheroot.ssl.builtin import BuiltinSSLAdapter HTTPServer.ssl_adapter = BuiltinSSLAdapter( certificate='server.crt', private_key='server.key') if __name__ == "__main__": app = MyApplication(urls ,globals()) app.run(port=443)
Étape 1 : Exécutez ce qui suit dans le shell dans l'ordre Commande, répondez à la question, définissez le mot de passe et générez le certificat, qui contient trois fichiers ***.crt, ***.key et ***.csr. Je les ai réorganisés sous le nom server.crt server.csr. server.key
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt mv server.key myserver.key mv server.crt myserver.crt
Pour démarrer le service, entrez simplement le code ci-dessous, où
from handle import Handle présente mon module de méthode, qui est appelé dans les URL (développé d'après le compte officiel WeChat) Exemple, spécifique si les novices peuvent le voir par eux-mêmes), et enregistrez le chemin du fichier selon le vôtre
import web from handle import Handle from web.wsgiserver import CherryPyWSGIServer CherryPyWSGIServer.ssl_certificate = "/usr/ssl/server.crt" CherryPyWSGIServer.ssl_private_key = "/usr/ssl/server.key" urls = ( '/wx', 'Handle', ) if __name__ == '__main__': app = web.application(urls, globals()) app.run()
Ensuite, démarrez le service sudo python main. py 443 (où 443 est le numéro de port)#🎜 🎜#
À ce stade, vous devez entrer le mot de passe que vous avez défini avant SSL pour l'ouvrir, mais cela signifie qu'il ne peut pas être masqué en arrière-plan. 🎜#Mais dans le dossier où le certificat a été généré, exécutez sudo openssl rsa - in server.key -out server.key n'aura pas de mot de passe, il pourra donc être exécuté en arrière-plan
#🎜🎜 #nohup python main.py 443 &Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!