2014-09-29 348 views
0

我們已經開發了一個應用程序在python中,並使用燒瓶揭示其通過http請求的API。我如何配置python/flask公開訪問與Windows防火牆

  • 這一切都在WINDOWS -

一切工作正常,我們已經在公司內部沒有問題測試,現在我們正在嘗試使用的應用程序在現實世界中 - 我們已經得到了我們的IT部門給我們一個面向公衆的IP /端口地址(通過防火牆轉發??),現在我們根本無法訪問服務器/應用程序。

經過一番挖掘,我們發現這個問題與Windows防火牆配置有關,當它關閉時不起作用,關閉一切正常。

燒瓶應用程序代碼是這樣運行的:app.run(debug = False,host ='0.0.0.0',port = 8080) 端口8080在防火牆例外中設置爲python.exe程序例外

netstat -a顯示應用程序正在等待連接。

如果我嘗試訪問該網站,雖然鉻我得到的錯誤:ERR_CONNECTION_TIMED_OUT。

隨着防火牆,我從來沒有看到任何「點擊」通過應用程序。

是否有一些其他配置我錯過了?

非常感謝。

+1

首先 - 它看起來像你試圖使用Flask調試服務器作爲生產服務器。這是一個糟糕的主意,它只是爲了開發而設計的,並且存在侷限性,使其成爲生產環境的不好選擇。使用Apache的mod_wsgi可能是Windows的最佳選擇。 – Doobeh 2014-09-30 00:04:31

+0

在防火牆上,我沒有Windows計算機 - 但是解鎖服務後,是否可以在您關心的允許通過的實際端口上添加入站規則? – Doobeh 2014-09-30 00:05:15

回答

1

作爲服務運行時,運行服務的程序不是python.exe而是pythonservice.exe。您必須將其添加到Windows防火牆設置中允許的程序中。在我的情況下,它位於C:\Python33\Lib\site-packages\win32\pythonservice.exe