我使用了不同配置文件配置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日 可选操作:
删除 回复作者:sky 发布时间:18年04月08日 可选操作:
删除 回复像您这样配置的话,如果访问的地址是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日 可选操作:
删除 回复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日 可选操作:
删除 回复谢谢回复
根据您说的,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日 可选操作:
删除 回复site1,虚拟根是“/”,这是根(主)站,所有的路由都不要变,并且root䚱设为“root=/ /var/www/Site1”;Site2的虚拟路径是 “/Site2”,root配置应该是“root=/Site2 /var/www/Site2“。
作者:yunei 发布时间:18年04月10日 可选操作:
删除 回复并且不管是site1还是site2,都要各自使用一个配置文件,因为jexus将虚拟路径也看成是一个网站。各虚拟路径网站和根路径网站,要使用完全相同的域名和端口,因为对外看起来是“同一个站”。
另外,关于提到找不到网页的事,你可以在两个站都写一个有特殊标记的404异常的处理页,目的是确定到底是jexus返回的404还是core返回的404,然后方便对症下药。
作者:yunei 发布时间:18年04月10日 可选操作:
删除 回复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日 可选操作:
删除 回复我刚又试了,发现访问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日 可选操作:
删除 回复