.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. ...
随机推荐
- VS 进行了无法编译的编辑
Debug的时候碰到这个很烦人得重新运行 工具=>选项=>常规=>调试=>常规 将启用"编辑"并继续,勾取消掉
- 忘了 iOS(iPad、IPhone) 设备上的「屏幕使用时间」密码怎么办?找回屏幕密码
忘了 iOS(iPad.IPhone) 设备上的「屏幕使用时间」密码怎么办? 1. 用iTunes 进行备份[备份时一定要输入密码] 备份时C盘要有足够的空间 2. 下载 pinfinder.exe ...
- AtCoder Beginner Contest 242(C~E)
AB 水题 C - 1111gal password 题意:给出 N(\(2\le N\le 1e6\))求满足以下条件的 \(X\) 的数量,需除以模 (\(998244353\)) $X $ 是 ...
- #2059:龟兔赛跑(动态规划dp)
Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击--赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能 ...
- S3C2440移植uboot之支持NORFLASH
上节S3C2440移植uboot之支持NAND启动修改了代码支持了NAND启动.这节我们分析uboo使其支持NORFLASH的操作. 目录 1.分析启动错误 2.修改代码 3.在匹配数组中添加我们 ...
- freeswitch隐藏fs标识
概述 freeswitch是一款好用的开源软交换平台. fs的默认配置环境下,sip消息中有很多freeswitch的标识,比如"user-agent","contact ...
- jdk与tomcat的安装部署(CentOS8)(VM)
一.登陆CentOS8 通过VMware Workstation登陆CentOS8系统 二.VMware Tools安装 1.找到VMware Tools对应文件: VMwareTools-10. ...
- mybatis plus 获取新增实体的主键
转载请注明出处: mybatis plus 新增实体对象调用的是 IService 接口中的 save 方法: default boolean save(T entity) { return SqlH ...
- Nacos源码 (2) 核心模块
整体架构 服务管理:实现服务CRUD,域名CRUD,服务健康状态检查,服务权重管理等功能 配置管理:实现配置管CRUD,版本管理,灰度管理,监听管理,推送轨迹,聚合数据等功能 元数据管理:提供元数据C ...
- 同步FIFO设计
FIFO有一个读口和一个写口,读写时钟一致是同步FIFO,时钟不一致就是异步FIFO IP设计中通常使用的是同步FIFO 异步FIFO通常使用在跨时钟域设计中 RAM(Random Access Me ...