无法为多个域configurationnginx

我试图在一台VPS上运行多个域(使用简单的静态页面),运行Ubuntu 12.04 LTS,nginx。 所有域的基本nginxconfiguration与这个相似(都在站点可用的目录中分隔):

server { listen 80; server_name www.example.com; return 301 $scheme://example.com$request_uri; } server { listen 80; server_name example.com; root /home/username/example.com; index index.html; } 

它适用于第一个域,第二个域只适用于我删除第一个服务器块,第三个域它根本不工作。 nginx无法启动。 我不是我做错了什么。

问题是漫长的域名。 当我检查nginx错误日志时,我发现这个错误消息:

 could not build the server_names_hash, you should increase server_names_hash_bucket_size: 64 

所以,我在/etc/nginx/nginx.conf文件中取消了下面一行的/etc/nginx/nginx.conf

 http { .... #server_names_hash_bucket_size 64; .... } 

现在,一切都按预期工作:)

如果你想在本地主机上testing你的子域,你可能需要把它的名字添加到本地主机文件中。 通常位于/ etc / hosts中

不知怎的,这些子域必须解决,尝试添加sub.localhost 127.0.0.1,如果你去网上添加一个Alogging与您的服务器IP,并检查与DNS

挖掘www.myexample.com

如果它的工作,它应该回来一个IP,并做每个子域的相同。

让我知道这个是否奏效

将“返回301”更改为“重写…”

 server { listen 80; server_name www.example.com; rewrite ^(.*)$ $scheme://example.com$request_uri; } 

如果您需要运行多个域名(使用云托pipe服务),则有一个循序渐进的教程,说明如何轻松地使用Jelasticconfiguration多个域 。