2012-09-02 113 views
0

我運行的CherryPy爲遠程Linux機器上一個Web服務器上運行2個CherryPy的實例。最終用戶通過互聯網訪問CherryPy實例提供的網站。到現在爲止還挺好。在同一臺機器

現在,我想有一個網站的開發版本,在同一臺機器上,但在不同的端口上運行,這樣我就可以開發並不會干擾督促網站測試。我需要在同一臺機器上進行開發,因爲它包含大量的數據,這些數據不適合移動到不同的機器上。

的開發實例的代碼是在不同的目錄下,當然,這樣我編輯的開發代碼,它不會觸發督促例如重載或以任何方式影響督促實例。

但是,如果配置我的dev的實例不同的端口督促實例上運行,並嘗試啓動dev的情況下,我得到:

Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/cherrypy/process/wspbus.py", line 197, in publish 
    output.append(listener(*args, **kwargs)) 
    File "/usr/lib/python2.7/dist-packages/cherrypy/_cpserver.py", line 151, in start 
    ServerAdapter.start(self) 
    File "/usr/lib/python2.7/dist-packages/cherrypy/process/servers.py", line 167, in start 
    wait_for_free_port(*self.bind_addr) 
    File "/usr/lib/python2.7/dist-packages/cherrypy/process/servers.py", line 410, in wait_for_free_port 
    raise IOError("Port %r not free on %r" % (port, host)) 
IOError: Port 8080 not free on '127.0.0.1' 

無論是開發還是PROD實例中運行了端口8080. prod實例位於SSL(443)上,dev實例可以放在任意端口上(我們假設它位於98765上)。我沒有在任何配置文件的任何地方指定8080。所以,我沒想到那裏是端口衝突,但是,看起來,一個實例,CherryPy的產卵2 processes-我想有某種形式的親子關係 - 和過程的一個上localhost:8080莫名其妙聽的。因爲這種情況發生在我嘗試啓動的兩個實例中,所以第二個無法啓動,因爲最終在8080上出現了這個衝突。

我試過了幾件事,例如關閉自動重新加載和超時監控,希望CherryPy不會啓動與8080相關的進程,但目前還沒有運氣。

在此先感謝您的幫助!

+0

是否有在端口8080上運行的另一個進程? –

+0

@sarah:謝謝你的幫助。根據netstat,機器上沒有任何8080上運行。 –

+0

其實,如果我運行的nmap,它說的東西是在8080上運行:8080/TCP開放HTTP代理 –

回答

0

我有同樣的問題,解決這一問題添加到每個CherryPy的

cherrypy.config.update({'server.socket_host': '127.0.0.1', 
         'server.socket_port': 9023 
         }) 
相關問題