开发者社区> 问答> 正文

阿里云小程序云应用使用了哪些后端应用架构?

阿里云小程序云应用使用了哪些后端应用架构?

展开
收起
珍宝珠 2020-02-17 16:50:18 5394 0
1 条回答
写回答
取消 提交回答
  • 阿里云头部开发者运营小二

    使用了3个后端架构

    Spring Boot

    小程序云应用支持部署Spring Boot框架的小程序应用,确保您要部署的小程序应用满足云应用的要求。 Spring Boot框架应用配置要求

    将使用Spring Boot技术栈的代码部署到云端服务器上时,会启动一个Nginx服务器和一个Spring Boot的应用服务器。部署Spring Boot框架的应用,需要满足以下要求:

    软件包格式:JAR文件
    JVM版本:Java 8及以下
    端口:服务监听端口为8080
    启动/停止:无特殊要求,标准Spring Boot方式
    

    自定义Nginx配置测试

    小程序云应用通过一层Nginx代理对外提供服务,可以通过在发布包中提供对应环境的Nginx配置文件来自定义Nginx配置。如果没有提供,或文件名称不符,则自动使用默认的配置。

    您可以在resources下可以创建nginx目录,目录下的nginx-test.conf文件以及nginx-prod.conf文件将分别作为为测试环境和生产环境的nginx配置文件。

    测试环境默认配置:

    worker_processes  1;
    error_log /home/admin/logs/nginx-error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
        server {
            listen       80;
            server_name  127.0.0.1:8080;
    
            location / {
                proxy_pass   http://127.0.0.1:8080;
            }
        }
    }
    

    生产环境默认配置:

    worker_processes  1;
    error_log /home/admin/logs/nginx-error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       443;
            server_name  127.0.0.1:8080;
            ssl on;
            ssl_certificate  /home/admin/sslcert/cert.pem;
            ssl_certificate_key /home/admin/sslcert/cert.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            location / {
                proxy_pass   http://127.0.0.1:8080;
            }
        }
    
        server {
            listen       80;
            server_name  127.0.0.1:8080;
            rewrite ^(.*)$ https://$host$1 permanent;
        }
    }
    

    Node.js

    小程序云应用支持部署Node.js框架的小程序应用,确保您要部署的小程序应用满足云应用的要求。 Node.js框架应用配置要求

    部署Node.js框架的应用,需要满足以下要求:

    软件包格式:.tar.gz文件,且源文件打包到.tar.gz文件的根目录
    端口:服务监听端口为7001
    启动/停止:在package.json文件中实现了start、stop命令
    

    自定义Nginx配置测试

    小程序云应用通过一层Nginx代理对外提供服务,可以通过在发布包中提供对应环境的Nginx配置文件来自定义Nginx配置。如果没有提供,或文件名称不符,则自动使用默认的配置。

    您可以在上传的发布包的根目录创建一个conf目录,目录下的nginx-test.conf文件以及nginx-prod.conf文件将分别作为为测试环境和生产环境的nginx配置文件。

    测试环境默认配置:

    user                        admin;
    worker_rlimit_nofile        100000;
    
    events {
        use                     epoll;
        worker_connections      20480;
    }
    
    error_log /home/admin/logs/nginx-error.log;
    
    http {
        default_type            application/octet-stream;
        index                   index.html index.htm;
    
        access_log /home/admin/logs/nginx-access.log;
    
        upstream nodejs {
            server 127.0.0.1:7001;
            keepalive 10;
        }
    
        server {
            listen              80 default_server;
            server_name         _;
    
            location / {
                proxy_pass              http://nodejs;
            }
        }
    }
    

    生产环境默认配置:

    user                        admin;
    worker_rlimit_nofile        100000;
    
    events {
        use                     epoll;
        worker_connections      20480;
    }
    
    error_log /home/admin/logs/nginx-error.log;
    
    http {
        default_type            application/octet-stream;
        index                   index.html index.htm;
    
        access_log /home/admin/logs/nginx-access.log;
    
        upstream nodejs {
            server 127.0.0.1:7001;
            keepalive 10;
        }
    
        server {
            listen              80;
            rewrite ^(.*)$ https://$host$1 permanent;
        }
    
        server {
            listen 443 ssl default_server;
    
            ssl_certificate /home/admin/sslcert/cert.pem;
            ssl_certificate_key /home/admin/sslcert/cert.key;
            ssl_session_timeout 5m;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    
            location / {
                proxy_pass              http://nodejs;
            }
        }
    }
    

    PHP

    小程序云应用支持部署PHP框架的小程序应用,确保您要部署的小程序应用满足云应用的要求。 PHP框架应用配置要求

    部署PHP框架的应用,需要满足以下要求:

    软件包格式:.zip文件,且源文件打包到.zip文件的根目录
    监听端口:9000
    默认的web server路径是/public。如需修改路径,例如改为/public_html,可在软件包根目录上创建包含如下内容的_buildpack文件: 
    
     app_entry=public_html
    

    自定义php扩展:扩展安装基于YUM命令,扩展必须在YUM仓库中存在。可在软件包根目录上创建包含如下内容的_buildpack文件(多个扩展用空格分隔):

    php_extensions=php-extesion-name1 php-extension-name2
    

    扩展安装的日志保存在/home/admin/logs/ext-install-info.log和/home/admin/logs/ext-install-err.log中。

    自定义Nginx配置测试

    小程序云应用通过一层Nginx代理对外提供服务,可以通过在发布包中提供对应环境的Nginx配置文件来自定义Nginx配置。如果没有提供,或文件名称不符,则自动使用默认的配置。

    您可以在上传的发布包的根目录创建一个nginx目录,目录下的nginx-test.conf文件以及nginx-prod.conf文件将分别作为为测试环境和生产环境的nginx配置文件。

    测试环境默认配置:

    #user nginx;
    worker_processes  1;
    
    error_log /home/admin/logs/nginx-error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        sendfile        on;
        keepalive_timeout  65;
    
        #gzip on;
    
        server {
            listen       80;
            server_name  localhost;
            set $root_path /home/admin/app-run/app_entry;
            root $root_path;
            index  index.php index.html;
    
            location / {
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=/$1  last;
                    break;
                }
            }
            location ~ \.php$ {
            try_files $uri =404;
                #root           html;
                #fastcgi_pass   unix:/var/run/php5-fpm.sock;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
        }
    }
    

    生产环境默认配置:

    worker_processes  1;
    error_log /home/admin/logs/nginx-error.log warn;
    pid /var/run/nginx.pid;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        sendfile        on;
        keepalive_timeout  65;
    
        server {
            listen       443;
            server_name  localhost;
    
            set $root_path /home/admin/app-run/app_entry;
            root $root_path;
            index  index.php index.html;
    
            ssl on;
            ssl_certificate  /home/admin/sslcert/cert.pem;
            ssl_certificate_key /home/admin/sslcert/cert.key;
            ssl_session_timeout 5m;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
            ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
            ssl_prefer_server_ciphers on;
            location / {
                if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=/$1  last;
                    break;
                }
            }
            location ~ \.php$ {
            try_files $uri =404;
                #root           html;
                #fastcgi_pass   unix:/var/run/php5-fpm.sock;
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                include        fastcgi_params;
            }
    
        }
        # 80 to 443
        server {
            listen       80;
            server_name  127.0.0.1:8080;
            rewrite ^(.*)$ https://$host$1 permanent;
        }
    }
    
    2020-02-17 18:07:58
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
5.18阿里小程序云生态及实践分享 - 阿里小程序的一云多端 立即下载
小程序云应用入门实操系列课程 - 第四讲 立即下载
小程序云应用入门实操系列课程 - 第一讲 立即下载