用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

2017-3-15 11:17:10 天下雪原创达人 造轮子 人生巅峰 楼主 54101
因为对服务器不太了解,所以有个同学问我的这个问题,我很好奇答案;

就是因为小程序https需要443端口,所以小程序请求需要请求443端口;

那么问题就是:假如一个服务器上,有多个小程序运行时,就需要都设置为访问443端口;

请问这样是否会有问题?假如有问题,如何解决这个问题?


原问题是这样的:
当一个服务器上房多个小程序时,需要修改443端口号 但是微信配置添加域名时不能有端口号,这怎么解决?
由于一个服务器上第二个项目,端口号改为444  https://jz.miyun360.com:444,后台没问题,但是前端访问不到

请参考教程:
node插件http-proxy反向代理实现对端口的分发
nginx同一端口监听多个域名和同时监听http,https
有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
本帖最后由 li541464750 于 2017-3-15 11:41 编辑

默默的把自己答案删了。

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

li541464750 发表于 2017-3-15 11:33
默默的把自己答案删了。

我把他的答案复述下来,虽然还是一脸懵逼;
Kevin
服务器配置多个域名即可。比如Tomcat多个工程对应不同域名。
或者都是自己的小程序的话,不用分工程和域名也行。请求不同的路径即可。
这个应该不存在成为问题。
apache可以的;
参考:http://blog.csdn.net/harryxlb/article/details/6873765
3,打开extra目录内的httpd-vhosts.conf文件,把默认的配置

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.localhost
    DocumentRoot "/www/docs/dummy-host.localhost"
    ServerName dummy-host.localhost
    ServerAlias http://www.dummy-host.localhost/
    ErrorLog "logs/dummy-host.localhost-error_log"
    CustomLog "logs/dummy-host.localhost-access_log common"
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.localhost
    DocumentRoot "/www/docs/dummy-host2.localhost"
    ServerName dummy-host2.localhost
    ErrorLog "logs/dummy-host2.localhost-error_log"
    CustomLog "logs/dummy-host2.localhost-access_log common"
</VirtualHost>

改成自己想要的目录和域名
443和80没本质区别

梦轻影:
装个nginx,监听443,配置路径规则,按照规则转发到其它端口


有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
几个都行吧,分工程呗
time泼粪涂墙 发表于 2017-3-15 17:56
几个都行吧,分工程呗

具体一点,这个帖子是要留给未来遇到问题的人参考的     
新增案例:实现:多个小程序用一个https站点(作者:Roluce)

背景:
1:win2008+IIS7环境只能搭建一个https站点
2:小程序后台必须用https搭建
ps:win2008+IIS有搭建多个https的偏方,不过得IIS修改配置文件,一重启IIS得重新配置,很不方便`

正常来说:
一个win2008+IIS服务器只能让一个小程序用

问题解决:
解决方法:让这个唯一的https站点做路由

1:https站点:接收小程序发来的请求参数,根据参数重新组织请求url
2:https站点:模拟http向真正的小程序后台发送请求
3:http站点:小程序后台接收参数、返回请求的数据
4:https站点:接收返回的数据
5:https站点:把数据返回给小程序

原理图:
1.png
实现源码1:小程序请求接口
[AppleScript] 纯文本查看 复制代码
url:[url=https://www.https.com/api.php?app=zcml&action=post&cat=17&count=2&page=1]https://www.https.com/api.php?ap ... t=17&count=2&page=1[/url]

app:小程序缩写
action:功能(获取文章,获取分类,获取幻灯片数据等)
cat:文章分类ID
count:每次获取数量
page:页数

2:https站点php代码(路由)
[AppleScript] 纯文本查看 复制代码
<?php
//每次请求必有参数(小程序名、功能)
$app = $_GET['app'];        //应用名称缩写
$action = $_GET['action'];  //功能
/********************
 * 1:拼装url
 ********************/
 switch($app){
    //《轴承名录》小程序
    case "zcml":
        //功能
        switch($action){
            //获取文章数据
            case "post":
            $cat=$_GET['cat'];      //分类id
            $count=$_GET['count'];  //每页数据量
            $page=$_GET['page'];    //页数
            $url = "http://www.http.com/xcxapi.php?action={$action}&cat={$cat}&count={$count}&page={$page}";
            break;
            //获取xx数据
            case "index":
            break;
        }
    break;
    //其他小程序(待)
    case "other":
    break;     
}
/********************
 * 2:模拟http获取数据
 ********************/
$timeout = 5; 
$ch = curl_init();                              //初始化curl   
curl_setopt($ch, CURLOPT_URL, $url);            //设置访问的url地址   
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);    //参数为1表示传输数据,为0表示直接输出显示。 
curl_setopt($ch, CURLOPT_HEADER, 0);            //参数为0表示不带头文件,为1表示带头文件  
/*curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);   //获取https需要加上此
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);   //获取https需要加上此*/
$output = curl_exec($ch);   //执行命令并把获取的数据赋值给$output
curl_close($ch);            //关闭URL请求
echo $output;
?>

3:http站点php代码(小程序后台)
[AppleScript] 纯文本查看 复制代码
<?php
/***wp框架************/ 
if ( !isset($wp_did_header) ) {
    $wp_did_header = true;
    // Load the WordPress library.
    require_once( dirname(__FILE__) . '/wp-load.php' );   
    // Set up the WordPress query.
    wp();
}
/***wp框架************/ 
//获取功能
$action = $_GET['action'];
switch($action){
    //获取文章数据
    case "post":
    //接收传参
    $cat=$_GET['cat'];
    $count=$_GET['count'];
    $page=$_GET['page'];
    //拼装筛选参数
    $args = array(    
        'posts_per_page' => $count,  //每页数量 
        'paged' => $page,            //第几页   
        'post_type' => 'dealer',      //自定义文章类型名称(可省略自动识别)
        'tax_query' => array(         //自定义分类(指定)
            array(
                'taxonomy' => 'cdealer',//自定义分类法名称
                'terms' =>$cat //id为64的分类。也可是多个分类array(12,64)
                ),
            )
        );
    //执行时筛选
    query_posts($args);  //本页不要这句,自定义分类才用
    $arr=[];
    //对文章数据进行重新封装
    while(have_posts()){
        the_post();
        $title = get_the_title();
        $sale = get_field("sale");
        $tel = get_field("tel");
        $addr = get_field("addr");
        $arr[] = ["title"=>$title,"sale"=>$sale,"tel"=>$tel,"addr"=>$addr];  
    }  
    echo json_encode($arr);
    break;
    //其他
    case "other":
    break;
}


有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
感谢分享~

评分

参与人数 1浮云 +10 收起 理由
天下雪 + 10 赞一个!

查看全部评分

发新帖
您需要登录后才可以回帖 登录 | 立即注册