【问题标题】:Go Revel framework port 9000 already in useGo Revel 框架端口 9000 已在使用中
【发布时间】:2013-10-01 00:03:57
【问题描述】:

我一直在关注 the Go Revel framework nicely,直到我去运行测试应用程序:

$ revel run myapp

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

ERROR 2013/09/30 19:51:41 harness.go:167: Failed to start reverse proxy: listen tcp 
<nil>:9000: address already in use

当我运行这个时:

$ sudo lsof -n -i4TCP:9000 | grep LISTEN

我明白了:

COMMAND   PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
php-fpm 11007 root   11u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11008 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11009 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 11010 _www    0u  IPv4 0xffffff801441dde0      0t0  TCP localhost:cslistener (LISTEN)

我有一个 PHP-NGINX 应用程序在端口 80 上运行,不想丢失它,但不知道这是否意味着这个 PHP 应用程序阻止了我的 Go 应用程序运行。

任何人都可以插话吗?

我在 MacOS X 10.7.5 上运行。

【问题讨论】:

  • 为什么不直接使用 app.conf 或 revel run myapp dev 8888 更改您的狂欢应用程序的端口?
  • 查清行得通!随时将其发布为答案,我会投赞成票。

标签: nginx go localhost port revel


【解决方案1】:

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

  1. 编辑config/app.conf文件并设置

    http.port = 8888
    
  2. 使用指定端口的参数运行您的狂欢应用程序。您还需要指定 devprod 来说明您的环境:

    revel run myapp dev 8888
    

【讨论】:

    【解决方案2】:

    建议使用 lsof 检查进程是否已在此端口上运行:

    lsof -i :9000
    

    有时,您会看到系统上没有安装 lsof,然后先安装 lsof:

    sudo apt-get install lsof
    

    如果相同的应用程序在这个端口上运行,你应该杀死进程并重新启动:

    kill -9 PORT
    

    如果其他进程正在此端口上运行,那么您应该按照@Vanessa 的建议更改默认端口

    【讨论】:

      【解决方案3】:

      你也可以试试跑

      ps -A | grep revel
      

      您的狂欢应用程序可能仍在运行。如果是,你可以用

      杀死它
      kill PID
      

      【讨论】:

        【解决方案4】:

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

        如果 Nginx 和 php 安装在同一台机器上,您可以在 PHP-FPM 配置中将其更改为不同的端口或使用本地套接字(首​​选),但请确保将您的 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
        

        在 Nginx 中更新 fastcgi_pass 指令:

        fastcgi_pass   127.0.0.1:9000;
        

        重启 Nginx 和 PHP-FPM 应该可以再次绑定到 9000 端口了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-06
          • 1970-01-01
          • 2018-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多