.net5发布到Linux指南
目录
- 下载安装gcc编译库
- 下载安装pcre正则表达式库
- 下载安装openssl安全加密库
- 下载安装zlib解压库
- 下载解压并编译安装nginx
- 启动nginx
- 设置nginx开机启动
- 查看nginx状态
- 常用nginx命令
一、搭建nginx服务器
- 下载安装gcc编译库
gcc -v
yum -y install gcc
- 下载安装pcre正则表达式库
yum install -y pcre pcre-devel
- 下载安装openssl安全加密库
yum install -y openssl openssl-devel
- 下载安装zlib解压库
yum install -y zlib zlib-devel
- 下载解压并编译安装nginx
wget http://nginx.org/download/nginx-1.9.9.tar.gz
tar -zxvf nginx-1.9.9.tar.gz
cd nginx-1.9.9
./configure --prefix=/usr/local/nginx
make&&make install
- 启动nginx
cd /usr/local/nginx/sbin
./nginx
- 设置nginx开机启动
#在rc.local增加启动代码即可
vi /etc/rc.local
#增加一行 /usr/local/nginx/sbin/nginx,增加后保存
#设置执行权限
cd /etc
chmod 755 rc.local
- 查看nginx状态
通过端口查询: lsof -i:80 #nginx默认是80端口
通过进程查询: ps -ef | grep nginx
访问网页查询 curl 127.0.0.1
- 常用nginx命令
nginx -s stop :快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。
nginx -s quit :平稳关闭Nginx,保存相关信息,有安排的结束web服务。
nginx -s reload :因改变了Nginx相关配置,需要重新加载配置而重载。
nginx -s reopen :重新打开日志文件。
nginx -c filename :为 Nginx 指定一个配置文件,来代替缺省的。
nginx -t :不运行,而仅仅测试配置文件。nginx将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的 文件。
nginx -v:显示 nginx 的版本。
nginx -V:显示 nginx 的版本,编译器版本和配置参数
二、安装.net5 runtime
- 设置下载源
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
- 安装运行时
sudo yum install dotnet-runtime-5.0
sudo yum install aspnetcore-runtime-5.0
三、上传发布的项目文件并创建服务
- 安装工具WinSCP
- 使用WinSCP在linux服务器创建服务目录
- 将vs2019发布的项目使用WinSCP上传到指定目录
- 使用putty创建linux服务
cd /lib/systemd/system
sudo touch Oceania.ShopConfigService.service
sudo nano Oceania.ShopConfigService.service
配置ShopConfig.service服务文件
[Unit]
Description= ShopConfigService
[Service]
WorkingDirectory=/root/apiservices/Oceania.ShopConfigService/
ExecStart=/usr/bin/dotnet /root/apiservices/Oceania.ShopConfigService/Oceania.ShopConfigService.Api.Host.dll
Restart=always
RestartSec=10
SyslogIdentifier= ShopConfigService
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
然后输入
ctrl+x ->y 回车
- linux服务操作相关命令
systemctl enable Oceania.ShopConfigService.service
systemctl start Oceania.ShopConfigService.service
systemctl status Oceania.ShopConfigService.service
systemctl [command] [unit]
command 主要有:
start:立刻启动后面接的 unit
stop:立刻关闭后面接的 unit。
restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。
reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable:设置下次开机时,后面接的 unit 会被启动。
disable:设置下次开机时,后面接的 unit 不会被启动。
status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active:目前有没有正在运行中。
is-enable:开机时有没有默认要启用这个 unit。
kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show:列出 unit 的配置。
mask:注销 unit,注销后你就无法启动这个 unit 了。
unmask:取消对 unit 的注销。
四、配置nginx代理和防火墙
- 查看防火墙状态
firewall-cmd --state
- 启动防火墙
service firewalld start
- 添加指定的端口
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=5000/tcp
- 查看网口
ifconfig
- 添加网口到公开区域中
firewall-cmd --zone=public --add-interface=ens192
- 添加nginx反向代理配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /shopconfigservice/ {
proxy_pass http://localhost:5000; #本地应用地址及端口,可以使用 curl 命令测试一下
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;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias;
# location / {
# root html;
# index index.html index.htm;
# }
#}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
五、运行截图
- nginx运行截图
- Aspnetcore api运行截图
也可以输入:http://192.168.11.120/shopconfigservice/swagger/index.html 测试
六、发布更新
- 发布邮件接口服务
cd /usr/lib/systemd/system
sudo touch Oceania.MailApiService.service
sudo nano Oceania.MailApiService.service
[Unit]
Description= Oceania.MailApiService.service
[Service]
WorkingDirectory=/root/net5services/Oceania.MailService.Api.Host
ExecStart=/usr/bin/dotnet /root/net5services/Oceania.MailService.Api.Host/Oceania.MailService.Api.Host.dll urls=”http://*:5011”
Restart=always
RestartSec=10
SyslogIdentifier= Oceania.MailApiService.service
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
先Ctrl+x 再y
systemctl enable Oceania.MailApiService.service
systemctl start Oceania.MailApiService.service
systemctl status Oceania.MailApiService.service
查询端口
lsof -i tcp:80
curl http://127.0.0.1:5010/api/mail/getemailserverlist
或者
http://192.168.11.120/mailservice/swagger/index.html
- 发布邮件发送服务
使用winSCP上传文件
cd /usr/lib/systemd/system
sudo touch Oceania.MailService.service
sudo nano Oceania.MailService.service
[Unit]
Description= Oceania.MailService.service
[Service]
WorkingDirectory=/root/net5services/Oceania.MailService.Host
ExecStart=/usr/bin/dotnet /root/net5services/Oceania.MailService.Host/Oceania.MailService.Host.dll
Restart=always
RestartSec=10
SyslogIdentifier= Oceania.MailService.service
User=root
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
先Ctrl+x 再y
systemctl enable Oceania.MailService.service
systemctl start Oceania.MailService.service
systemctl status Oceania.MailService.service
.net5发布到Linux指南的更多相关文章
- 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- 发布《Linux工具快速教程》
发布<Linux工具快速教程> 阶段性的完成了这本书开源书籍,发布出来给有需要的朋友,同时也欢迎更多的朋友加入进来,完善这本书: 本书Github地址:https://github.com ...
- SQLServer 2008 R2 发布订阅配置指南
原以为配置SQLServer 2008 R2的发布订阅很简单,实际配置后才发现过程中有问题地方一直都没搞明白,最后经过几天的查找问题和实践,终于搞定了.现将过程记录如下. SQLServer 2008 ...
- Core 发布至Linux
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统 ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而 ...
- DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区
DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区 DS Scheduler 0.7 发布,Linux 调度系统
- ASP.NET Core 网站发布到Linux服务器
长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...
- ASP.NET Core 网站发布到Linux服务器(转)
出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...
- .netcoreapp 发布到 linux 的问题,vs靠不住
.netcore 2.0 发布后,小版本更新速度惊人 截止目前:2.1.200 最新一个新项目,vs发布到linux@debian9一直报错,反复发布n次依然失败.把本地2.1.100更新到最新2.1 ...
- java项目发布到linux服务器,tomcat正常启动但没加载项目
问题描述: java项目发布到linux服务器,一切操作正确,linux命令启动tomcat后,查看日志启动tomcat正常,上传的war包已经解压成功,但是tomcat没加载项目. 解决方法: 1. ...
随机推荐
- 国内使用 Mac OS 快速安装 Homebrew
问题描述 使用新的 Mac 电脑开发,没有安装 Homebrew 确实不行,但是国内访问 github,很不稳定,运行 /bin/bash -c "$(curl -fsSL https:// ...
- 智能制造之 SMT 产线监控管理可视化
前言 随着<中国制造2025>的提出,制造业迎来了全新的发展机遇.更多的企业将制造业信息化技术进行广泛的应用,如 MES 系统.数字孪生以及生产管理可视化等技术的研究应用,已经成为社会各界 ...
- 大数据(3)---HDFS客户端命令及java连接
一.参数设置 之前有说到HDFS的备份数量和切块大小都是可以配置的,默认是备份3,切块大小默认128M 文件的切块大小和存储的副本数量,都是由客户端决定! 所谓的由客户端决定,是通过客户端机器上面的配 ...
- 运行vue项目时报错“ValidationError: Progress Plugin Invalid Options”
https://blog.csdn.net/M_Nobody/article/details/123135041?spm=1001.2101.3001.6650.1&utm_medium=di ...
- php开发中常见的漏洞点(一) 基础sql注入
前言 本系列为小迪2022的学习笔记,仅用于自我记录. 正文 在一般情况下,一个网站的首页大致如下 在上方存在着各种各样的导航标签.链接.而一般情况下网站的导航会用参数进行索引的编写,比如id.pag ...
- 机器学习-线性分类-softmax回归 做多分类-10
1. softmax回归 伯努利分布(0-1分布 二分类),我们采用Logistic回归(用sigmoid函数映射到 0-1之间 输出预测概率)建模. 那么我们应该如何处理多分类问题?(比如要进行邮件 ...
- 【TouchGFX】MVP 示例分析
控制流 数据流 硬按键改变View界面内容 backend --> model --> presenter --> view View button 控制电路板LED亮灭 vi ...
- CSS : div 高度为0的三种情况
1, css 样式没正确绑定 ( 也就是没有设置高度 ) 2, 子元素 浮动 ( float ) 3, 子元素 绝对定位 ( position : absolute )
- JMS Controller生命周期
- 3 分钟了解 NVIDIA 新出的 H200
英伟达在 2023 年全球超算大会上发布了备受瞩目的新一代 AI 芯片--H200 Tensor Core GPU.相较于上一代产品 H100,H200 在性能上实现了近一倍的提升,内存容量翻倍,带宽 ...