1

I am running Amazon Linux AMI and nginx and when I try starting my nginx server:

$ sudo /etc/init.d/nginx restart

I get the following error:

nginx: [emerg]: bind() to IP failed (99: Cannot assign requested address)

where "IP" is a placeholder for my IP address. Does anybody know why that error might be happening? This is running on EC2.

My nginx.conf file looks like this:

user              app;
worker_processes  4;

#error_log  /var/log/nginx/error.log;
#error_log  /var/log/nginx/error.log  notice;
error_log  /var/log/nginx/error.log  info;

pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    tcp_nopush     on;
    tcp_nodelay    on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    gzip  on;
    gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_proxied any;
  gzip_types text/plain text/html text/css application/x-javascript application/xml application/xml+rss text/javascript;

  server_names_hash_bucket_size 64;

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
  server {
        listen          IP:443; 
        server_name     name;
        include /etc/nginx/ssl.conf;
  }
}

kirpit say:With Amazon EC2 and elastic IPs, the server doesn't actually know its IP as with most any other server. So you need to tell your linux to allow processes to bind to the non-local address. Just add the following line into /etc/sysctl.conf and then reload your sysctl.conf.

But on Amazon Linux AMI bash: sysctl: command not found

4

1 回答 1

5

你能把IP部分去掉吗?

listen 443;

如果您为服务器分配了多个 IP,并且您希望 nginx 仅侦听该 IP,则只需指定一个 IP。

于 2013-03-26T11:43:17.953 回答