zoukankan      html  css  js  c++  java
  • Azure 入门系列 (第三篇 Publish Web Application to VM)

    本系列

    这个系列会介绍从 0 到 1 搭建一个 Web Application 的 Server. 间中还会带上一些真实开发常用的功能.

    一共 6 篇

    1. Virtual Machine (VM) 和 SQL Server

    2. Backup & Recovery Disaster 

    3. Publish Web Application to VM (IIS, HTTPS) <-- 你在这里

    4. Azure Key Vault

    5. Azure Storage (with custom domain)

    6. Computer Vision (smart-cropped thumbnails, OCR)

    本篇介绍

    安装 IIS

    安装 .NET

    一个 Web Application Razor page + Ef core 发布上去

    point DNS

    安装 SSL

    安装 IIS

    通过 RDP 进入 VM

    打开 Server Manager (管理 VM 的软件)

    一路 next, 然后选择 IIS

    这 4 个要自己加, 其它默认就可以了

    一路 next 安装.

    IIS 附带了很多功能 module, 而大部分 module 都被 asp.net core 替代了, 比如 static file 等. 

    web application 可以通过 web config 移除这些 IIS module. 大家依据自己的项目调整吧.

    这是我的 web config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <location path="." inheritInChildApplications="false">
        <system.webServer>
          <handlers>
            <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
          </handlers>
          <!-- for debug -->
          <!-- <aspNetCore processPath="dotnet" arguments=".Project.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" hostingModel="inprocess" /> -->
          <aspNetCore processPath="dotnet" arguments=".Project.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" hostingModel="inprocess" />
          <modules>
            <remove name="RewriteModule" />
            <remove name="AspNetCoreModule" />
            <!-- <remove name="RequestFilteringModule" /> -->
            <remove name="iisnode" />
            <!-- <remove name="ProtocolSupportModule" /> -->
            <!-- <remove name="IsapiModule" /> -->
            <remove name="IpRestrictionModule" />
            <!-- <remove name="IsapiFilterModule" /> -->
            <remove name="HttpRedirectionModule" />
            <remove name="DynamicIpRestrictionModule" />
            <!-- <remove name="DirectoryListingModule" /> -->
            <!-- <remove name="DefaultDocumentModule" /> -->
            <remove name="CorsModule" />
            <!-- <remove name="ConfigurationValidationModule" /> -->
            <remove name="ApplicationInitializationModule" />
            <remove name="WebSocketModule" />
            <remove name="AnonymousIdentification" />
            <remove name="DefaultAuthentication" />
            <remove name="FileAuthorization" />
            <remove name="FormsAuthentication" />
            <remove name="Profile" />
            <remove name="OutputCache" />
            <remove name="UrlAuthorization" />
            <remove name="RoleManager" />
            <remove name="ScriptModule-4.0" />
            <remove name="UrlMappingsModule" />
            <remove name="UrlRoutingModule-4.0" />
            <remove name="WindowsAuthentication" />
            <remove name="Session" />
            <!-- <remove name="StaticFileModule" /> -->
            <!-- <remove name="StaticCompressionModule" />   -->
          </modules>
          <!-- for debug -->
          <!-- <httpErrors errorMode="Detailed" /> -->
          <httpErrors errorMode="DetailedLocalOnly" />
        </system.webServer>
      </location>
    </configuration>
    <!--ProjectGuid: 3a959090-ed3e-49e4-b27a-4f580feb1d39-->
    
    <!-- sometime odata 需要很长的 query -->
    <!-- <security>
      <requestFiltering>
        <requestLimits maxQueryString="8192" />
      </requestFiltering>
    </security> -->
    
    <!-- 以前有放这个, 不知道还需要吗, 留着先 -->
    <!-- <urlCompression doStaticCompression="false" /> -->
    View Code

    安装 .NET

    官网下载 Hosting Bundle 

    一路 next 安装

    Setup Web App Razor Page + EF Core

    git clone https://github.com/keatkeat87/cnblogs-azure-get-started

    git checkout 5ef29baef0cb76c0d0daff66d7dad93b6f7c257b

    dotnet publish AzureGetStarted.csproj -o C:keatkeatprojects elease

    把文档 copy paste 去 VM

    打开 IIS create Website, binding to 刚才的 folder.

    提醒: www 和 non-www 都要 binding 哦

    打开 folder 写权限, 让 web app 可以写入文件

    数据库我的做法是, 把本地的 database backup 然后 restore to VM, 再创建一个 login account as the database owner.

    Point domain DNS

    Azure 有卖 DNS service, 如果是买 Azure 的就把 domain 的 Name server point to Azure, 然后到 Azure 的 DNS 写入 record, point to VM IP. 

    如果不是 Azure DNS, 那就去 hosting 调. 我是用 hosting 的 DNS, 这里就不多介绍了.

    如果要马上测试, 可以 cmd run ipconfig/flushdns, 或者提早把 TTL set 成很小, 比如 3600 seconds

    安装 Certify The Web

    参考: 免费 SSL Certify The Web

    装完全部就可以访问了.

  • 相关阅读:
    微信小程序——引入WeUI组件库(二)
    微信小程序——引入WeUI组件库(一)
    Centos 安装Sentinel
    Nacos安装与启动教程
    vue 2.9.6升级到3X版本
    window consul安装和运行
    基于Vue、Springboot网站实现第三方登录之QQ登录,以及邮件发送
    Dockerfile创建镜像
    Docker端口映射和容器互联
    Docker数据管理
  • 原文地址:https://www.cnblogs.com/keatkeat/p/15048313.html
Copyright © 2011-2022 走看看