大家好,关于asp网站源码分享很多朋友都还不太明白,今天小编就来为大家分享关于asp源码之家的知识,希望对各位有所帮助!
先决条件
使用具有sudo特权的标准用户帐户访问Ubuntu16.04服务器。服务器上安装了最新的非预览版.NET运行时。一个现有ASP.NETCore应用。
升级共享框架后,可随时重启服务器托管的ASP.NETCore应用。
通过应用发布和复制
配置应用以进行依赖框架的部署。
如果应用在本地运行,且未配置为建立安全连接(HTTPS),则采用以下任一方法:
配置应用,以处理安全的本地连接。有关详细信息,请参阅HTTPS配置部分。从Properties/launchSettings.json文件的applicationUrl属性中删除https://localhost:5001(如果存在)。
在开发环境中运行dotnetpublish,将应用打包到可在服务器上运行的目录中(例如bin/Release/{TARGETFRAMEWORKMONIKER}/publish,其中{TARGETFRAMEWORKMONIKER}占位符表示目标框架名字对象/TFM):
.NETCLI
dotnetpublish–configurationRelease\n
如果不希望维护服务器上的.NETCore运行时,还可将应用发布为独立部署。
使用集成到组织工作流的工具(例如SCP、SFTP)将ASP.NETCore应用复制到服务器。通常可在var目录(例如var/www/helloapp)下找到Web应用。
备注
在生产部署方案中,持续集成工作流会执行发布应用并将资产复制到服务器的工作。
测试应用:
在命令行中运行应用:dotnet<app_assembly>.dll。在浏览器中,导航到http://<serveraddress>:<port>以确认应用在Linux本地正常运行。
配置反向代理服务器
反向代理是为动态Web应用提供服务的常见设置。反向代理终止HTTP请求,并将其转发到ASP.NETCore应用。
使用反向代理服务器
Kestrel非常适合从ASP.NETCore提供动态内容。但是,Web服务功能不像服务器(如IIS、Apache或Nginx)那样功能丰富。反向代理服务器可以卸载HTTP服务器的工作负载,如提供静态内容、缓存请求、压缩请求和HTTPS终端。反向代理服务器可能驻留在专用计算机上,也可能与HTTP服务器一起部署。
鉴于此指南的目的,使用Nginx的单个实例。它与HTTP服务器一起运行在同一服务器上。根据要求,可以选择不同的设置。
由于请求通过反向代理转发,因此使用Microsoft.AspNetCore.HttpOverrides包中的转接头中间件。此中间件使用X-Forwarded-Proto标头来更新Request.Scheme,使重定向URI和其他安全策略能够正常工作。
转接头中间件应在其他中间件之前运行。此顺序可确保依赖于转接头信息的中间件可以使用标头值进行处理。若要在诊断和错误处理中间件后运行转接头中间件,请参阅转接头中间件顺序。
调用其他中间件之前,请先在Startup.Configure的基础上调用UseForwardedHeaders方法。配置中间件以转接X-Forwarded-For和X-Forwarded-Proto标头:
C
usingSystem.Net;\n\n…\n\nservices.Configure<ForwardedHeadersOptions>(options=>\n{\noptions.KnownProxies.Add(IPAddress.Parse(&34;));\n});\n
有关详细信息,请参阅配置ASP.NETCore以使用代理服务器和负载均衡器。
安装Nginx
使用apt-get安装Nginx。安装程序将创建一个systemdinit脚本,该脚本运行Nginx,作为系统启动时的守护程序。按照以下网站上的Ubuntu安装说明操作:Nginx:官方Debian/Ubuntu包。
备注
如果需要可选Nginx模块,则可能需要从源代码生成Nginx。
因为是首次安装Nginx,通过运行以下命令显式启动:
Bash
sudoservicenginxstart\n
确认浏览器显示Nginx的默认登陆页。可在http://<server_IP_address>/index.nginx-debian.html访问登陆页面。
配置Nginx
若要将Nginx配置为反向代理以将HTTP请求转发到ASP.NETCore应用程序,请修改/etc/nginx/sites-available/default。在文本编辑器中打开它,并将内容替换为以下代码片段:
nginx
server{\nlisten80;\nserver_nameexample.com*.example.com;\nlocation/{\nproxy_passhttp://127.0.0.1:5000;\nproxy_http_version1.1;\nproxy_set_headerUpgrade$http_upgrade;\nproxy_set_headerConnectionkeep-alive;\nproxy_set_headerHost$host;\nproxy_cache_bypass$http_upgrade;\nproxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;\nproxy_set_headerX-Forwarded-Proto$scheme;\n}\n}\n
如果应用是SignalR或BlazorServer应用,请分别参阅SignalRASP.NETCore生产托管和缩放和托管和部署ASP.NETCoreBlazorServer以了解详细信息。
当没有匹配的server_name时,Nginx使用默认服务器。如果没有定义默认服务器,则配置文件中的第一台服务器是默认服务器。最佳做法是,添加一个特定的默认服务器,它会在配置文件中返回状态代码444。默认的服务器配置示例是:
nginx
server{\nlisten80default_server;\nRestartserviceafter10secondsifthedotnetservicecrashes:\nRestartSec=10\nKillSignal=SIGINT\nSyslogIdentifier=dotnet-example\nUser=www-data\nEnvironment=ASPNETCORE_ENVIRONMENT=Production\nEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false\n\n[Install]\nWantedBy=multi-user.target\n
在前面的示例中,管理服务的用户由User选项指定。用户(www-data)必须存在并且拥有正确应用文件的所有权。
使用TimeoutStopSec配置在收到初始中断信号后等待应用程序关闭的持续时间。如果应用程序在此时间段内未关闭,则将发出SIGKILL以终止该应用程序。提供作为无单位秒数的值(例如,150)、时间跨度值(例如,2min30s)或infinity以禁用超时。TimeoutStopSec默认为管理器配置文件(systemd-system.conf,system.conf.d,systemd-user.conf,user.conf.d)中DefaultTimeoutStopSec的值。大多数分发版的默认超时时间为90秒。
34;<value-to-escape>&34;2016-10-18&34;2016-10-1804:00&34;Server:WebServer&34;Server:WebServer&Adjustkeepalive_timeouttothelowestpossiblevaluethatmakessense\nRedirectsalltraffic\nlocation/{\nproxy_passhttp://helloapp;\nlimit_reqzone=oneburst=10nodelay;\n}\n}\n}\n
备注
BlazorWebAssembly应用需要更大的burst参数值才能容纳应用发出的更大量的请求。
备注
上面的示例禁用了在线证书状态协议(OCSP)装订。如果启用,请确认证书支持该功能。
ssl_stapling
ssl_stapling_file
ssl_stapling_responder
ssl_stapling_verify
保护Nginx免受点击劫持的侵害
点击劫持(也称为UI伪装攻击)是一种恶意攻击,其中网站访问者会上当受骗,从而导致在与当前要访问的页面不同的页面上单击链接或按钮。使用X-FRAME-OPTIONS可保护网站。
缓解点击劫持攻击:
编辑nginx.conf文件:Bash复制sudonano/etc/nginx/nginx.conf添加行:add_headerX-Frame-Options&34;;保存该文件。重启Nginx。
MIME类型探查
此标头可阻止大部分浏览器通过MIME方式探查来自已声明内容类型的响应,因为标头会指示浏览器不要替代响应内容类型。使用nosniff选项后,如果服务器认为内容是“text/html”,则浏览器将其显示为“text/html”。
编辑nginx.conf文件:Bash复制sudonano/etc/nginx/nginx.conf添加行:add_headerX-Content-Type-Options&34;;保存该文件。重启Nginx。
其他Nginx建议
在服务器上升级共享框架后,重启服务器托管的ASP.NETCore应用。
关于asp网站源码分享和asp源码之家的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
