【问题标题】:Nginx Wild Card DomainsNginx 通配符域
【发布时间】:2014-04-22 21:19:38
【问题描述】:

我在 Nginx 上有一个 A 域名设置,我还在 Digital Ocean 上设置了通配符 DNS。

我希望我的主域指向它所在的位置:/usr/share/nginx/html/mission13.io

然后我希望所有通配符域指向它们各自的文件夹:

  • /usr/share/nginx/html/sub1.mission13.io
  • /usr/share/nginx/html/sub2.mission13.io
  • /usr/share/nginx/html/sub3.mission13.io

这就是我所拥有的,但我不确定该怎么做才能让它们指向正确的位置。我可以改变什么来做到这一点?

server{
    listen 80;
    root /usr/share/nginx/html/mission13.io;
    index index.php index.html index.htm;

    server_name mission13.io www.mission13.io *.mission13.io;

    location / {
            try_files $uri $uri/ /index.html;
    }
    include /usr/share/nginx/conf/mission13.io.conf;
    location ~ \.php$ {
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }
}

【问题讨论】:

  • 如何设置“Nginx 上的名称域设置”?请帮忙

标签: nginx webserver wildcard wildcard-subdomain


【解决方案1】:

另一种方法,请将服务器名称更改为_,然后它将在root /usr/share/nginx/html/ directory.so 中搜索具有主机名的文件夹。所以,您的目录看起来很干净

server{
 listen 80;
 root /usr/share/nginx/html;
 index index.php index.html index.htm;

 server_name _;

 location / {
        try_files $uri $uri/ /index.html;
 }
 include /usr/share/nginx/conf/mission13.io.conf;
 location ~ \.php$ {
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
 }
}

【讨论】:

  • 我得到这个的原因是因为它匹配第一个服务器块。它可以找到它为根目录设置的那个。
  • 我更改了根路径,请验证。
【解决方案2】:

知道了!

我需要像这样使用 $http_host:

root /usr/share/nginx/html/$http_host;

【讨论】:

    猜你喜欢
    • 2014-06-11
    • 1970-01-01
    • 2019-03-18
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 2016-03-28
    • 2016-08-26
    相关资源
    最近更新 更多