這篇博客參考瞭如下文章:html
一、http://www.cnblogs.com/ants/p/5732337.htmlpython
二、http://www.linuxidc.com/Linux/2016-11/137010.htmlinux
大致相似,只是在發佈期間遇到一些問題,作了一些記錄。可能其餘人遇到的問題都不盡相同,能夠參考其餘兩篇文章。nginx
請注意博客發佈的時間,如今是asp.net core 的1.0版本,在linux 上,微軟官方推薦nginx 作web服務器,監聽80端口,而後轉發到asp.net core站點上,asp.net core 站點用supervisor 守護。c++
vs2017 新建一個空的asp.net core 項目,而後以文件系統方式發佈項目,確認本地運行一切正常。web
sudo yum install libunwind libicu
下載sdk 地址:https://www.microsoft.com/net/download/linux 選擇centos7.1的,下載完成後經過winscp 上傳到 centos上(注意上傳的位置) centos
sudo mkdir -p /opt/dotnet
解壓縮:bash
sudo tar zxf dotnet.tar.gz -C /opt/dotnet
建立鏈接:服務器
sudo ln -s /opt/dotnet/dotnet /usr/local/bin
輸入:asp.net
dotnet --info
到此SDK就安裝成功了!!
dotnet demoweb.dll
注意吧程序集名稱換成本身本地的程序集名稱
tar -zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
./configure make sudo make install
注意若是./configure 失敗,大可能是沒有安裝編譯工具,執行:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
將nginx執行路徑加到path環境變量上,避免每次啓動nginx 都須要在nginx目錄下
vi ~/.bashrc
添加
export PATH="/usr/local/nginx/sbin:$PATH"
而後輸入如下命令來應用:
source ~/.bashrc
修改nginx配置文件:
vi /usr/local/nginx/conf/nginx.conf
配置以下:
server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
重啓nginx:
nginx -s reload
開放端口號(管理員操做):
firewall-cmd --zone=public --add-port=80/tcp --permanent systemctl restart firewalld
執行:
dotnet /home/yin/wwwroot/demoweb.dll
到這裏就能夠訪問了^.^
咱們須要監聽asp.net core站點的運行狀況,若是發生異常須要自動重啓,爲了解決這個問題咱們須要安裝supervisor。
tar zxvf supervisor-3.3.2.tar.gz cd supervisor-3.3.2 sudo python setup.py install
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/p/python-meld3-0.6.10-1.el7.x86_64.rpm sudo rpm -ivh python-meld3-0.6.10-1.el7.x86_64.rpm
配置supervisor:
mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改supervisord.conf:
vi /etc/supervisor/supervisord.conf
增長以下內容:
[include] files = conf.d/*.conf
建立配置文件demoweb.conf:
mkdir conf.d vi demoweb.conf
增長以下內容:
[program:demoweb] command=dotnet demoweb.dll directory=/home/yin/wwwroot/ autorestart=true stderr_logfile=/var/log/demoweb.err.log stdout_logfile=/var/log/demoweb.out.log environment=ASPNETCORE_ENVIRONMENT=Production user=root stopsignal=INT
運行supervisor:
supervisord -c /etc/supervisor/supervisord.conf
到此大公告成!!訪問地址