1, установить .Net Ядро SDK
1.1, перед установкой .NET, вам необходимо зарегистрировать ключ Microsoft, зарегистрировать хранилище продуктов и установить необходимую зависимость. Каждая машина должна заполнить только одну.
Sudo мин UVH https: // packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm
1,2, обновления продуктов, доступных для установки, а затем установить .NET SDK.
Sudo ни обновления Sudo ни установить DotNet -sdk- 2.2
1.3, убедитесь, что установка прошла успешно
DotNet --version
2, развертывание основного проекта .Net
2,1, после выхода проекта .Net Ядро Linux загружается в новую yunying папки, а затем введите yunying папки, запустить проект
2,2, то браузер на сайте: HTTP: // IP: 5000, если вы не можете посетить, первый отключить брандмауэр
3, установить и настроить Nginx Nginx, чтобы направить проект
3.1, добавил источник
Sudo мин -Uvh HTTP: // nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
3.2, установить Nginx
Sudo ням установить -y Nginx
3.3, Nginx запуск и настроена на автоматический запуск
Sudo systemctl начать Nginx
Sudo systemctl включить Nginx
3.4, чтобы увидеть, если установка была выполнена успешно
Введите в браузере: HTTP: // IP
3.5, изменить файл конфигурации Nginx, содержимое файла /etc/nginx/conf.d/default.conf заменен:
Сервер { слушать 80 ; Местонахождение / { proxy_pass HTTP: // локальный: 5000; proxy_http_version 1.1 ; proxy_set_header Обновление $ http_upgrade; proxy_set_header соединения держать - жив; proxy_set_header хоста $ хоста; proxy_cache_bypass $ http_upgrade; proxy_set_header Х -Forwarded- Для proxy_add_x_forwarded_for; proxy_set_header X -Forwarded- Прото $ схема; } }
После настройки выполнения Nginx -s перезагрузки или перезапуска systemctl перезагрузки Nginx Nginx, выполнить 2 операции запуска основного проекта .net снова, а затем получить доступ к порту 80, то можно сообщать 502 ошибок, из-за проблем с настройкой SELinux.
Есть два решения:
а, отключить SELinux
Входной сигнал: seatatus, если SELInux статус: включено, указывает поворот, изменить файл конфигурации / и т.д. / SELinux / конфигурации изменить SELINUX = отключено
Или бежать:
setenforce 0 Сед -i ' s / принуждени $ / отключено / г ' / и т.д. / SELinux / конфигурации
б, список допустимых Nginx добавлен SELinux
1, ни установить policycoreutils- питон 2, Судо кошку / вар /log/audit/audit.log | Grep Nginx | Grep отказано | audit2allow - М mynginx
3, Sudo semodule -i mynginx.pp
Заново запустить проект .Net ядра и доступа, это может быть успешный визит.
4, настроить демон Supervisor
4.1 Установка супервизора :
1、yum install python-setuptools
2、easy_install supervisor
4.2、配置Supervisor:
创建supervisor文件夹,通过echo_supervisord_conf初始化配置文件
1、mkdir /etc/supervisor
2、echo_supervisord_conf > /etc/supervisor/supervisord.conf
4.3、修改新建的supervisord.conf配置信息,将最后面的修改为
即去掉最后两行前面的“;”号。
4.4、为.Net Core 项目添加进程配置文件:
在/etc/supervisor/目录下创建名字为conf.d文件夹,在conf.d文件夹中创建一个WebDemo.ini文件,在WebDemo.ini文件添加以下配置
[program:WebDemo] command=dotnet WebDemo.dll ; 运行程序的命令 directory=/root/yunying/ ; 命令执行的目录 autorestart=true ; 程序意外退出是否自动重启 stderr_logfile=/var/log/WebDemo.err.log ; 错误日志文件 stdout_logfile=/var/log/WebDemo.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT
4.5、启动Supervisor服务:
supervisord -c /etc/supervisor/supervisord.conf
启动服务后可以通过命令查看是否配置成功
ps -ef | grep WebDemo.dll
如果看到以下内容,表示配置成功,就可以访问.Net Core项目了
4.6 配置Supervisor开机启动
进入/usr/lib/systemd/system/目录,并创建supervisord.service文件,添加内容:
[Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
使配置生效:
systemctl daemon-reload
设置服务开机启动:
systemctl enable supervisord
启动supervisor进程:
systemctl start supervisord
验证是否为开机启动:
systemctl is-enabled supervisord
5、常用命令:
5.1、Nginx
nginx //启动nginx nginx -s reload //重启nginx nginx -s stop //关闭nginx
5.2、supervisor
supervisorctl status //查看所有任务状态 supervisorctl shutdown //关闭所有任务 supervisorctl start|stop|restart all //控制所有进程 supervisorctl start|stop|restart program_name //控制目标进程