python 웹서버 포트 설정
2017. 6. 22. 10:45
python3 에서 tornado를 이용하여 간단하게 웹서버를 제작하였다.
from tornado.ioloop import IOLoop
from tornado.web import Application,RequestHandler,url
import myutil
class MainHandler(RequestHandler):
def get(self):
self.render("index.html")
handlers = [url(r"/",MainHandler),
]
print("port: ",80)
fs = myutil.FastStop()
fs.enable()
application = Application(handlers)
application.listen(80)
IOLoop.instance().start()
# IOLoop.current().start()
라 코드를 구성하였고, myutil은 ctrl c 로 서버를 끄게 만든 단순한 기능을 가진 모듈이다.
위처럼 구성하고 python으로 실행을 했다.
위의 pc는 공유기에 물려있어서 (사설 ip b.b.b.b)
공유기설정으로 들어가 포트포워딩을 xxxx->80으로 해주었다.
즉 외부 ip가 a.a.a.a라면
a.a.a.a:xxxx -> b.b.b.b:80 이 되어
파이썬 웹서버로 접속하게 된다.
이를 위해서 pc에서 방화벽 설정이 필요한데
인바운드에서 80번 포트를 열어줘도 해결이 안되어 여러가지 해보니
1) 제어판 - 시스템 및 보안 - Windows 방화벽 - Windows 방화벽을 통해 앱 또는 기능 허용 에서
python.exe에 해당하는 설정을 on 했다.
노트북에는 python.exe(개인)은 on 되어있었고, python.exe(공용)은 off였다.
pc에서는 python.exe(개인)은 on 되어있었고, python.exe(공용)과 python.exe(개인,공용)은 off였다.
암튼 저걸 키니까 됐다.
2) 위의 설정은 '고급 보안이 포함된 Windows 방화벽'의 항목들을 보기좋게 해놓은 것 같다.
즉 같은 설정을 여기서도 할 수 있다.