我有一个完美的配置,即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;
}
}
请帮我解决这个问题。我觉得有些事情是矛盾的,但不知道是什么。
答案 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(或者在某些情况下更高)它将起作用,除非有另一个问题。