Publish on linux
Publish dotnetcore app on linux server
http://slusar.su/kak-razyernut-net-core-2-1-mvc-proekt-na-ubuntu-server-18-04/
- install nginx
add-apt-repository ppa:nginx/stable
apt-get update; apt-get install nginx
- Check Nginx server
service nginx start
-
Go to IP server and see welcome page.
-
Edit Nginx configuration
cd /etc/nginx/sites-available/
nano default
server {
listen 80;
server_name example.com *.example.com;
location / {
proxy_pass https://localhost:5001;
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;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- Check config and Restart nginx
nginx -t
nginx -s reload
- Create empty MVC app and test server
dotnet new mvc -o testMvc
cd testMvc
dotnet build
dotnet run
- Create folder for App
cd /var/www
mkdir WebAPI
-
Publish App and copy files to /var/www/WebAPI
-
Check App
dotnet /var/www/WebAPI/WebAPI.dll
СОЗДАНИЕ СЕРВИСА ДЛЯ АВТОЗАПУСКА ПРИЛОЖЕНИЯ
Все хорошо, наше приложение работает и доступно из вне, но что делать, если сервер перезагрузиться из-за сбоя? Нам нужно автоматизировать запуск нашего приложения при старте системы. Для этого создадим сервис-службу, который и будет выполнять такую работу.
создадим файл настройки сервиса mywebapp.service, который будет лежать в папке /etc/systemd/system/ :
sudo nano /etc/systemd/system/mywebapp.service
И добавим туда следующие настройки:
[Unit]
Description=Example .NET Web API App running on Ubuntu
[Service]
WorkingDirectory=/var/www/webapp
ExecStart=/usr/bin/dotnet /var/www/webapp/webapp.dll
Restart=always
#Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=dotnet-mywebapp
User=user
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
Теперь мы можем активировать наш сервис, запустить и посмотреть его статус:
systemctl enable mywebapp.service
systemctl start mywebapp.service
systemctl status mywebapp.service
Если статус покажет адрес: http://localhost:5000 То нужно поменять настройки NGIX