我是靠谱客的博主 冷酷爆米花,最近开发中收集的这篇文章主要介绍Nginx多域名的泛解析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近将原来的Apache服务器升级成为了Nginx.由于不同的子域名需要访问不同的目录,一开始配置了多个虚拟主机,想想还是偷下懒,用Nginx的泛解析吧。

顺便也可以学习学习下

首先项目目录是这样的

/www/a.domain.com
/www/b.domain.com
/www/c.domain.com
/www/domain.com

其中每个项目里面的入口文件又不一样,有index的还有login的,直接贴配置吧

server {
        listen       80;
        server_name ~^(.+)?.domain.com$;
        access_log  logs/host.access.log;
        set $sub $1;  #设置sub变量
        set $root /www/$1.domain.com;   #设置web目录
        set $index index.html;       #设置默认的index页面
        
        if (!-d $root){    #if这里和括号之间是有个空格的
            set $root /www/domain.com; 
        }    
        
        root $root; 
        
        location / {
            if ($sub = a){
                set $index login.html;
            }
            if ($sub = b){
                set $index login.html;
            }
            if ($sub = c){
                set $index proxy.php;
            }
            index  $index;
        }       
 
        location ~ .*.(php|php5)$ {
           fastcgi_pass  unix:/dev/shm/php-fpm.sock;
           fastcgi_index index.php;
           include fastcgi_params;
        }
        
        #测试服务器不缓存图片和js.css文件
        # location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
        #            expires 10m;
        #           }

        # location ~ .*.(js|css)?$ {
        #            expires 10m;
        #           }

        location ~ /.ht {
            deny  all;
        }

    }

因为nginx配置里的if语句不支持 &&、||等语法,所以只能写多条If语句了

另外要注意的是 if (condition){}这里"if"和括号"("之间是有个空格的,要不然会报

unknown directive “if(!-e” in /usr/local/nginx/conf/nginx.conf:124这个错误

 

转载于:https://www.cnblogs.com/honeybaobao/p/4582773.html

最后

以上就是冷酷爆米花为你收集整理的Nginx多域名的泛解析的全部内容,希望文章能够帮你解决Nginx多域名的泛解析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部