Nginx Go Revel框架端口9000已在使用中

Nginx Go Revel框架端口9000已在使用中,nginx,go,localhost,port,revel,Nginx,Go,Localhost,Port,Revel,在运行测试应用程序之前,我一直遵循以下步骤: $revel运行myapp 这给了我所有正确的输出,但也给出了以下错误: ERROR 2013/09/30 19:51:41 harness.go:167: Failed to start reverse proxy: listen tcp <nil>:9000: address already in use 我有一个PHP-NGINX应用程序在端口80上运行,我不想失去它,但不知道这是否意味着这个PHP应用程序正在阻止我的Go应用程

在运行测试应用程序之前,我一直遵循以下步骤:

$revel运行myapp

这给了我所有正确的输出,但也给出了以下错误:

ERROR 2013/09/30 19:51:41 harness.go:167: Failed to start reverse proxy: listen tcp 
<nil>:9000: address already in use
我有一个PHP-NGINX应用程序在端口80上运行,我不想失去它,但不知道这是否意味着这个PHP应用程序正在阻止我的Go应用程序运行

有人能插话吗


我正在运行MacOS X 10.7.5

您可以使用以下任一方法更改revel应用程序的端口:

  • 编辑
    config/app.conf
    文件和设置

    http.port = 8888
    
  • 使用指定端口的参数运行revel应用程序。您还需要指定
    dev
    prod
    来说明您的环境:

    revel run myapp dev 8888
    

  • 建议使用lsof检查此端口上已运行的进程:

    lsof -i :9000
    
    有时,您会看到您的系统上未安装lsof,然后首先安装lsof:

    sudo apt-get install lsof
    
    若相同的应用程序在此端口上运行,则应终止进程并重新启动:

    kill -9 PORT
    

    如果此端口上正在运行其他进程,则应按照@Vanessa的建议更改默认端口。您也可以尝试运行

    ps -A | grep revel
    
    您的revel应用程序可能仍在运行。如果是的话,你可以用

    kill PID
    

    看起来您正在运行Nginx/PHP FPM,它将使用端口9000进行FPM进程通信

    您可以在PHP-FPM配置中将其更改为其他端口或使用本地套接字(如果Nginx和PHP安装在同一台机器上,则更好),但请确保更新Nginx站点定义以反映此更改

    对于PHP,请在PHP-fpm.conf中搜索listen指令:

    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
    ;                            a specific port;
    ;   'port'                 - to listen on a TCP socket to all addresses on a
    ;                            specific port;
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    listen = 127.0.0.1:9000
    
    fastcgi_pass   127.0.0.1:9000;
    
    在Nginx中,更新fastcgi_pass指令:

    ; The address on which to accept FastCGI requests.
    ; Valid syntaxes are:
    ;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
    ;                            a specific port;
    ;   'port'                 - to listen on a TCP socket to all addresses on a
    ;                            specific port;
    ;   '/path/to/unix/socket' - to listen on a unix socket.
    ; Note: This value is mandatory.
    listen = 127.0.0.1:9000
    
    fastcgi_pass   127.0.0.1:9000;
    

    重新启动Nginx和PHP-FPM,您应该能够再次绑定到端口9000。

    为什么不使用app.conf或
    revel运行myapp dev 888来更改revel应用程序的端口呢?
    ?这很有效!请随意将其作为答案发布,我将对此进行投票。