Ubuntu 18.04 安裝部署Net Core、Nginx全過程


Ubuntu 18.04 安裝部署Net Core、Nginx全過程

環境配置

Ubuntu 18.04 ,Nginx,.Net Core 2.1, Let's Encrypt

更新系統

sudo apt-get update

sudo apt-get upgrade

安裝Net Core

參考文檔地址:https://www.microsoft.com/net/learn/dotnet/hello-world-tutorial#install

  • Register Microsoft key and feed
    wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
  • Install .NET SDK
   sudo apt-get install apt-transport-https
   sudo apt-get update
   sudo apt-get install dotnet-sdk-2.1
  • 創建 ASP.NET Core 演示網站並發布(此部分根據實際需要修改)
    # 下載一個演示型站點
    git clone https://github.com/linezero/NETCoreBBS
    vim NETCoreBBS/src/NetCoreBBS/Program.cs

    # 默認為 80 端口,這里修改為 8000 端口
    .UseUrls("http://*:8000")


    # 編譯並發布
    $ cd NETCoreBBS
    $ dotnet restore
    $ dotnet publish
    $ sudo dotnet publish -c Release -o /var/bbs.xyfy.loan #發布到指定目錄

  • 部署並后台運行網站
    # 進入發布后的位置,開始運行
    $ cd /var/bbs.xyfy.loan
    # 安裝 Supervisor
    $ sudo apt-get install supervisor
    # 配置 Supervisor
    $ sudo vim /etc/supervisor/conf.d/NetCoreBBS.conf

    [program:NetCoreBBS]

    directory=/var/bbs.xyfy.loan
    command=dotnet NetCoreBBS.dll
    autostart=true
    autorestart=true
    startsecs=10
    startretries=50
    stderr_logfile=/var/log/NetCoreBBS.err.log
    stdout_logfile=/var/log/NetCoreBBS.out.log
    environment=ASPNETCORE__ENVIRONMENT=Production
    user=root
    stopsignal=INT

    # 重啟supervisor
    $ sudo /etc/init.d/supervisor restart
    # 如果一切配置正確,查看相應日志你可以看到類似以下輸出,表示應用已正常啟動。
    $ tail -f  /var/log/NetCoreBBS.out.log
    Hosting environment: Production
    Content root path: /root/dotnet/NETCoreBBS/src/NetCoreBBS/bin/Debug/netcoreapp2.0/publish
    Now listening on: http://[::]:8000
    Application started. Press Ctrl+C to shut down.

安裝Nginx


    # 安裝
    $ sudo apt-get install nginx

安裝配置Let's Encrypt [此處作廢,最好只生成證書,而不對nginx配置做出修改,如果你只有一個站點,並且不需要反向代理,可以使用此方法]

  • Installing Certbot 安裝Certbot
    # 安裝Certbot
    $ sudo add-apt-repository ppa:certbot/certbot
    $ sudo apt-get update
    $ sudo apt-get install python3-certbot-nginx  # install Certbot's Nginx package
  • Setting up Nginx
    # 配置域名
    $ sudo vim /etc/nginx/sites-available/default
    # 尋找server_name這行配置然后使用自己的域名替換修改下划線_
    # server_name www.xyfy.loan bbs.xyfy.loan;

    # 測試配置
    $ sudo nginx -t
    # 啟用配置
    $ sudo service nginx reload
  • Obtaining an SSL Certificate 申請ssl證書
    # 申請證書
    $ sudo certbot --nginx -d www.xyfy.loan  -d bbs.xyfy.loan
    $ 嘗試證書自動續期
    $ sudo certbot renew --dry-run

配置Nginx反向代理[證書是另外生成的]

    # 反向代理
    $ sudo vi /etc/nginx/sites-enabled/www.xyfy.loan.conf
server {
  listen 80 ;
  server_name www.xyfy.loan;
  return      301 https://$server_name$request_uri;
}
 ##
 upstream wwwxyfyloan {
    #ip_hash;
    server localhost:8000;
    #server 172.18.28.109:8001;
    ip_hash;  
         }
 ##
server {
   listen       443 ssl;
   server_name  www.xyfy.loan;

   ssl_certificate      certs/www.xyfy.loan.crt;
   ssl_certificate_key  certs/www.xyfy.loan.key;
    location / {
        proxy_pass    http://wwwxyfyloan;
    }
}
    # 符號連接
    $ cd /etc/nginx/sites-enabled
    $ sudo ln -s /etc/nginx/sites-available/www.xyfy.loan.conf www.xyfy.loan.conf
    # 重啟
    $ sudo nginx -t
    $ sudo service nginx reload


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM