我试图在一台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多个域 。