我有一个问题,没有页面可以工作,只有索引页面。它可以在我自己的机器上运行(在 Visual Studio 中测试时),但是在使用 apache2 托管在 linux ubuntu 机器上时会出现此错误。
该网页曾经是服务器托管的客户端模型(它工作正常,完全没有问题,只是速度很慢),但现在我将其更改为仅服务器(与 SignalR 一起使用)它不再工作了。
我设法在 apache 设置中修复了 websocket 连接,所以它正在连接。仅当尝试转到另一个页面时,例如 /login 才会发生这种情况:
使用版本 3.0.0-preview5
Ubuntu 16.04.6 LTS
我认为这是apache配置文件。
/etc/systemd/system/kestrel-FatGo.service:
[Unit]
Description=FatGo
[Service]
WorkingDirectory=/var/FatGo/publish
ExecStart=/usr/bin/dotnet /var/FatGo/publish/FatGo.dll
Restart=always
RestartSec=10
SyslogIdentifier=dotnet-demo
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
/etc/apache2/conf-enabled/FatGo.conf:
<VirtualHost *:443>
ServerName miniturtle.tk
ServerAlias www.miniturtle.tk
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/ retry=1 acquire=3000 connectiontimeout=28800 timeout=28800 Keepalive=On
ProxyPassReverse / http://127.0.0.1:5000/
RewriteEngine on
RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P]
ErrorLog /var/log/apache2/FatGo-error.log
CustomLog /var/log/apache2/FatGo-access.log common
LimitRequestFieldSize 10000000
LimitRequestBody 10000000
</VirtualHost>
/etc/apache2/sites-available/FatGo.conf:
<VirtualHost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>
<VirtualHost *:443>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ErrorLog /var/log/apache2/FatGo-error.log
CustomLog /var/log/apache2/FatGo-access.log common
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4+RSA:+HIGH:+MEDIUM:!LOW:!RC4
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
如果您能帮我解决这个问题,我将不胜感激 :) 感谢您的阅读
PS我不是经验丰富的网络开发人员