Nginx错误:nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)解决方法

作者:我就是个世界 发表于:2011-04-20
刚刚在测试把django部署在nginx 上,写完配置文件之后,重启NGINX出现如下错误:
[code]nginx: [emerg] bind() to 0.0.0.0:8080 failed (98: Address already in use)[/code]
看字面意思是NGINX绑定8080端口失败,原因是该地址已经在使用,98应该是一个错误代号。那说明自己占用了8080端口。
返回来再看一下配置文件:[separator]
[code]
server {
      listen 8080;
      server_name husw.net tools.husw.net;
      location / {
      # 指定 fastcgi 的主机和端口
      fastcgi_pass 127.0.0.1:8080; #转发8080端口的信息
      fastcgi_param PATH_INFO $fastcgi_script_name;
      fastcgi_param REQUEST_METHOD $request_method;
      fastcgi_param QUERY_STRING $query_string;
      fastcgi_param CONTENT_TYPE $content_type;
      fastcgi_param CONTENT_LENGTH $content_length;
      fastcgi_pass_header Authorization;
      fastcgi_intercept_errors off;
      fastcgi_param SERVER_PROTOCOL $server_protocol;
      fastcgi_param SERVER_PORT $server_port;
      fastcgi_param SERVER_NAME $server_name;
    }
    location ^~ /site_media/ {
      alias /home/wwwroot/djangoproject/Tools/static/; #注意Django静态文件的路径
    }
}
[/code]
发现原因所在了,因为之前已经开启django的fastcgi模式到8080端口
[code]python manage.py runfcgi method=threaded host=127.0.0.1 port=8080[/code]
[b]所以解决方法:[/b]
修改NGINX配置文件中相冲突的监听端口号,
[code]sudo gedit '/etc/nginx/sites-available/default'[/code]
修改为如下内容:
[code]
server {
      listen 80; #这个监听端口和下面指定django运行fastcgi模式的端口号不能重复
      server_name husw.net tools.husw.net;
      location / {
      # 指定 fastcgi 的主机和端口
      fastcgi_pass 127.0.0.1:8080; #转发8080端口的信息
      fastcgi_param PATH_INFO $fastcgi_script_name;
      fastcgi_param REQUEST_METHOD $request_method;
      fastcgi_param QUERY_STRING $query_string;
      fastcgi_param CONTENT_TYPE $content_type;
      fastcgi_param CONTENT_LENGTH $content_length;
      fastcgi_pass_header Authorization;
      fastcgi_intercept_errors off;
      fastcgi_param SERVER_PROTOCOL $server_protocol;
      fastcgi_param SERVER_PORT $server_port;
      fastcgi_param SERVER_NAME $server_name;
    }
    location ^~ /site_media/ {
      alias /home/wwwroot/djangoproject/Tools/static/; #注意Django静态文件的路径
    }
}
[/code]

然后重启NGINX
[code]sudo /etc/init.d/nginx restart[/code]
NGINX正常启动,这样就解决了。

分享:

扫一扫在手机阅读、分享本文

请发表您的评论