美文网首页
nginx下如何做到应用的分版本部署

nginx下如何做到应用的分版本部署

作者: daniel_hao | 来源:发表于2015-08-05 20:40 被阅读127次

    说明

    因为在工作中,我们的软件是在不断升级,比如现在是v0.4版本,但是以后会升级到v0.5。这时,我们要保证两点:

    • 不带版本访问的时候,访问到的是最新版本。
    • 带版本访问的时候,访问的是指定版本的服务。

    例如:访问v0.5的时候,可以调到v0.5的程序;在访问旧的v0.4的时候,访问的就是v0.4的版本。

    这里简单说明下:

    配置

    这里比较懒,直接copy了!

    server {
            listen       80;
            server_name  api.m.example.com;
            charset utf-8;
            root   /home/app/api.m.example.com/v0.5/web/;   #默认路径,指向最新版本v0.5。不带版本时,访问的就是最新版本v0.5。
    
            location / {
                index  index.php index.html index.htm;    #站点目录index设置
            }
    
            #当访问/v0.4/版本目录时,会找/home/app/api.m.example.com/v0.4/web/
            location /v0.4/ {
                index index.php;
                alias /home/app/api.m.example.com/v0.4/web/; 
            } 
            #当进入v0.4目录后,会在/home/app/api.m.example.com/v0.4/web/目录下找index.php程序读取
            location ~ ^/v0.4/(.*\.php)$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /home/app/api.m.example.com/v0.4/web/$1; 
                include        fastcgi_params;
            }
    
            location /v0.5/ {
                index index.php;
                alias /home/app/api.m.example.com/v0.5/web/;
            }
            location ~ ^/v0.5/(.*\.php)$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /home/app/api.m.example.com/v0.5/web/$1;
                include        fastcgi_params;
            }
    
            #此标签必须配置到最后面,否则会出现始终访问这个location,而不访问其他版本目录
            location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
            access_log /home/logs/api.m.example.com/access.log access;
            error_log /home/logs/api.m.example.com/error.log info;
        }
    

    相关文章

      网友评论

          本文标题:nginx下如何做到应用的分版本部署

          本文链接:https://www.haomeiwen.com/subject/ixtbqttx.html