LINUX DOTNET      Linux DotNET 中文社区

Linux .NET编程与应用技术之专业网站:www.linuxdot.net !     返回首页    
   
[楼主] https虚拟目录问题

我使用了不同配置文件配置root设置了多个虚拟目录,使用80http一切正常,启用https443网站没有响应,也找不到错误日志。 删除虚拟目录的配置,保留单一网站也都正常,证书配置也没问题。
配置如下:
port=443
root=/ /data/www/main
hosts=www.abc.com

port=443
root=/app/ /data/www/app
hosts=www.abc.com

测试发现只要存在一个虚拟目录,https就没有响应,文档几乎都看了,也没能解决问题,请求帮助。

作者:sky   发布时间:18年04月08日   可选操作:删除 回复

[1楼] 回复:https虚拟目录问题

已解决,不必回复了,谢谢!

作者:sky   发布时间:18年04月08日   可选操作:删除 回复

[2楼] 回复:https虚拟目录问题

像您这样配置的话,如果访问的地址是www.abc.com/app,可以访问到data/www/app中的内容的吗?
我之前也碰到这种类似情况,还没解决.
我的两个配置如下:
port=80
root=/ /var/www/Site1
hosts=123.123.123.123
AppHost={CmdLine=dotnet /var/www/Site1/Site1.dll;AppRoot=/var/www/Site1;Port=5000}

port=80
root=/Site2/ /var/www/Site2
hosts=123.123.123.123
AppHost={CmdLine=dotnet /var/www/Site2/Site2.dll;AppRoot=/var/www/Site2;Port=5001}

如果访问123.123.123.123,能正常访问到Site1的内容,如果访问123.123.123.123/Site2就没办法访问,提示找不到网页

宇内大大说AppHost不支持虚拟目录,我这种配置是不是就是AppHost的虚拟目录呢?

能帮忙看看吗?谢了

作者:willians512   发布时间:18年04月09日   可选操作:删除 回复

[3楼] 回复:https虚拟目录问题

1,对于AppHost的虚拟路径,你需要在core程序的路由中也加上相应的虚拟路径。如,无虚拟路径时,某路由是 “blog/{id}”,那么,你使用虚拟路径“/Site2/”后 ,这个路由就应该是“Site2/blog/{id}”。
2,Jexus要更新到最新的版本5.8.3.x,安装后,用“./jws -V ”命令显示的具体版本号至少应该是“5.8.3.8”

作者:yunei   发布时间:18年04月09日   可选操作:删除 回复

[4楼] 回复:https虚拟目录问题

谢谢回复
根据您说的,jexus已经升级到了5.8.3.8了
Site2的路由配置修改如下(端口我绑定的是5001)
app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "Site2/{controller=Home}/{action=Index}/{id?}");
            });
在本地访问127.0.0.1:5001/Site2,能正确访问网站。但是部署到服务器后,访问123.123.123.123/Site2还是找不到网页

如果我把Site2的配置改为
port=80
root=/ /var/www/Site2
hosts=123.123.123.123
AppHost={CmdLine=dotnet /var/www/Site2/Site2.dll;AppRoot=/var/www/Site2;Port=5001}
这时候访问123.123.123.123/Site2能正常访问,但是123.123.123.123又不能访问了,应该是port和root的配置与Site1重复了。

所以如果按您说的在路由中加了虚拟路径后,两个网站的root或hosts要如何修改?

谢谢

作者:willians512   发布时间:18年04月10日   可选操作:删除 回复

[5楼] 回复:https虚拟目录问题

site1,虚拟根是“/”,这是根(主)站,所有的路由都不要变,并且root䚱设为“root=/ /var/www/Site1”;Site2的虚拟路径是 “/Site2”,root配置应该是“root=/Site2 /var/www/Site2“。

作者:yunei   发布时间:18年04月10日   可选操作:删除 回复

[6楼] 回复:https虚拟目录问题

并且不管是site1还是site2,都要各自使用一个配置文件,因为jexus将虚拟路径也看成是一个网站。各虚拟路径网站和根路径网站,要使用完全相同的域名和端口,因为对外看起来是“同一个站”。
另外,关于提到找不到网页的事,你可以在两个站都写一个有特殊标记的404异常的处理页,目的是确定到底是jexus返回的404还是core返回的404,然后方便对症下药。

作者:yunei   发布时间:18年04月10日   可选操作:删除 回复

[7楼] 回复:https虚拟目录问题

jexus站点配置文件如下:
port=80
root=/ /var/www/Site1
hosts=123.123.123.123
AppHost={CmdLine=dotnet /var/www/Site1/Site1.dll;AppRoot=/var/www/Site1;Port=5000}

port=80
root=/Site2 /var/www/Site2
hosts=123.123.123.123
AppHost={CmdLine=dotnet /var/www/Site2/Site2.dll;AppRoot=/var/www/Site2;Port=5001}


应用程序路由配置如下:
Site1:
routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");

Site2:
routes.MapRoute(
                    name: "default",
                    template: "Site2/{controller=Home}/{action=Index}/{id?}");

按照您的提示,我加了错误页提示.
如果是以上配置,那么访问Site1正常,但是访问123.123.123.123/Site2或是Site2下的视图,都会显示Site1的404错误。

说明Site2站点配置文件根本没起作用

但是我测试时候发现偶尔会访问到Site2上的站点,我做的尝试有在Site的路由中添加如下规则:
routes.MapRoute(
                    name: "default",
                    template: "Site2/{controller=Home}/{action=Index}/{id?}");
但是再刷新下页面,就又是Site1报的404错误了

您看看还会是什么问题?站点配置是否正确,路由该如何写?

谢谢

作者:willians512   发布时间:18年04月21日   可选操作:删除 回复

[8楼] 回复:https虚拟目录问题

我刚又试了,发现访问123.123.123.123/Site2,重复刷新多次,一会报Site1的404错误,一会又能访问到Site2的页面。

站点配置是上个回复中的,路由配置是:
Site1:
routes.MapRoute(
       name: "default",
       template: "{controller=Home}/{action=Index}/{id?}");

Site2:
routes.MapRoute(
       name: "default",
       template: "Site2/{controller=Home}/{action=Index}/{id?}");

作者:willians512   发布时间:18年04月21日   可选操作:删除 回复

 
   
   

留言回复:
标题: * 标题必填
作者:   * 请填上你的名字  
操作键:   * 填入几个字母表示是您写的,便于进一步操作
发言内容:
 
发贴者须知:
1、您无需注册即可发贴,但是,贴子内容必须在法律法规和社会公德所允许的范围内;
2、本站专注IT技术,谢绝包括政治、社会、情感等任何与IT技术无关的贴子在本站发表;
3、本站保留对任何贴子进行删除、禁用、更改、举报、追究等所有权利;
 
今天是: 周七  周一  周三  周二  周四  周五  周六