阿里云无法用nginx绑定80端口的解决办法


nginx.conf中把server的内容删掉,通过include vhost的方式加载某个域名的配置.如配置meimeng123.cn这个域名,放在vhost目录的配置如下:

server {
    listen       80;
    server_name  meimeng123.cn www.meimeng123.cn;
    root         /home/god/mySite/www/meimeng123;

    access_log /var/log/nginx/meimeng;

    location / {
        index index.html index.htm index.php;
    }

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }

    location ~/.ht{
        deny all;
    }
}

 

然而,通过www.meimeng123.cn无法访问,在服务器通过localhost可以访问到index.html页面.说明ecs的安全组规则也配置了.

但为什么外面无法访问,服务器上可以访问网站呢?因为,nginx配置的是内网端口,外网由于权限问题不能访问内网80端口,其他端口就可以.可能是这样吧.因此,端口转接吧.命令如下:

iptables -A PREROUTING -t nat -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 8080

 

这样外网访问外网网卡的80端口就可以转接到内网的80端口了.配置meimeng123.cn的文件如下:

server {
    listen       8080;
    server_name  meimeng123.cn www.meimeng123.cn;
    root         /home/itdictionary/www/meimeng123;

    access_log /var/log/nginx/meimeng;

    location / {
        index index.html index.htm index.php;
    }

    error_page 404 /404.html;
    location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }

    location ~/.ht{
        deny all;
    }
}

这样外网就可以通过meimeng123.cn访问到服务器了.

Author: bkdwei