0 votes
1 view
in AWS by (19.2k points)

I am running Ubuntu Hardy 8.04 and nginx 0.7.65, and when I try starting my nginx server:

$ sudo /etc/init.d/nginx start

I get the following error:

Starting 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 www-data www-data;

worker_processes  4;

events {

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    access_log /usr/local/nginx/logs/access.log;

    sendfile        on;

    tcp_nopush      on;

    tcp_nodelay         on;

    keepalive_timeout  3;

    gzip  on;

    gzip_comp_level 2;

    gzip_proxied any;

    gzip_types  text/plain text/css application/x-javascript text/xml application/xml

    application/xml+rss text/javascript;

    include /usr/local/nginx/sites-enabled/*;

}

and my /usr/local/nginx/sites-enabled/example.com looks like:

server {

        listen   IP:80;

        server_name  example.com;

        rewrite ^/(.*) https://example.com/$1 permanent;

       }

server {

        listen   IP:443 default ssl;

        ssl         on;

        ssl_certificate     /etc/ssl/certs/myssl.crt;

        ssl_certificate_key /etc/ssl/private/myssl.key;

        ssl_protocols       SSLv3 TLSv1;

        ssl_ciphers ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP;

        server_name example.com;

        access_log /home/example/example.com/log/access.log;

        error_log /home/example/example.com/log/error.log;

        }

1 Answer

0 votes
by (44.6k points)

With Amazon EC2 and elastic IPs, the server does not truly know its IP as with most other servers.

So you wish to tell your Linux to permit processes to bind to the non-local address. Just add the following line into /etc/sysctl.conf file:

# enable processes to bind to the non-local address

# (necessary for apache/nginx in Amazon EC2)

net.ipv4.ip_nonlocal_bind = 1

and then reload your sysctl.conf by:

$ sysctl -p /etc/sysctl.conf

which will be fine on reboots.

Welcome to Intellipaat Community. Get your technical queries answered by top developers !


Categories

...