Nginx多个域名不起作用

时间:2014-08-19 19:15:46

标签: nginx virtualhost

我有一个完美的配置,即nginx,php5-fpm,apc,varnish和mariadb。除了之外,一切都完美无缺;

我正在托管一个网站,因为我的服务器资源很高且可用,我想在同一台服务器上托管其他网站。当我尝试将不同的网站添加到nginx时,该服务根本不会重新启动。

当一切正常时,

这是我的配置文件:

    server {
    listen  8080; 

    root /usr/share/nginx/www;
    index index.php index.html index.htm;

    server_name www.domain1.com;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }


location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
   expires 365d;
}

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

我不想为不同的虚拟主机使用单独的文件,我想在默认文件中执行所有操作。但是当我添加下面的另一个虚拟主机并保存默认文件时。 nginx不会重启。

 server {
    listen  8080; 

    root /usr/share/nginx/www;
    index index.php index.html index.htm;

    server_name www.domain1.com;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }


location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
   expires 365d;
}

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

server {
    listen  8080; 

    root /usr/share/nginx/domain2;
    index index.php index.html index.htm;

    server_name www.domain2.com;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        allow ::1;
        deny all;
    }


location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
   expires 365d;
}

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        include fastcgi_params;
    }
}

请帮我解决这个问题。我觉得有些事情是矛盾的,但不知道是什么。

1 个答案:

答案 0 :(得分:0)

好的,我只是通过调查错误日志找到了解决方案。

2014/08/19 21:55:07 [emerg] 5927#0: could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32

错误日志告诉我增加哈希桶大小..

我编辑了nginx.conf,并按照错误日志中的建议将桶大小设置为32,它最初没有工作,但后来我将它设置为64并且工作正常。

只需在nginx.conf中搜索“bucket”,取消注释,然后设置为64(或者在某些情况下更高)它将起作用,除非有另一个问题。