目录

Aspnetcore api 服务发布指南

一、 搭建nginx服务器

  1. 下载安装gcc编译库
  2. 下载安装pcre正则表达式库
  3. 下载安装openssl安全加密库
  4. 下载安装zlib解压库
  5. 下载解压并编译安装nginx
  6. 启动nginx
  7. 设置nginx开机启动
  8. 查看nginx状态
  9. 常用nginx命令

二、 安装.net5 runtime

  1. 设置下载源
  2. 安装运行时

三、 上传发布的项目文件并创建服务

  1. 安装工具WinSCP
  2. 使用WinSCP在linux服务器创建服务目录
  3. 将vs2019发布的项目使用WinSCP上传到指定目录
  4. 使用putty创建linux服务
  5. linux服务操作相关命令

四、 配置nginx代理和防火墙

  1. 查看防火墙状态
  2. 启动防火墙
  3. 添加指定的端口
  4. 查看网口
  5. 添加网口到公开区域中
  6. 添加nginx反向代理配置

五、 运行截图

  1. nginx运行截图
  2. Aspnetcore api运行截图

一、搭建nginx服务器

  1. 下载安装gcc编译库

gcc -v

yum -y install gcc

  1. 下载安装pcre正则表达式库

yum install -y pcre pcre-devel

  1. 下载安装openssl安全加密库

yum install -y openssl openssl-devel

  1. 下载安装zlib解压库

yum install -y zlib zlib-devel

  1. 下载解压并编译安装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

  1. 启动nginx

cd /usr/local/nginx/sbin

./nginx

  1. 设置nginx开机启动

#在rc.local增加启动代码即可

vi /etc/rc.local

#增加一行 /usr/local/nginx/sbin/nginx,增加后保存

#设置执行权限

cd /etc

chmod 755 rc.local

  1. 查看nginx状态

通过端口查询: lsof -i:80 #nginx默认是80端口

通过进程查询: ps -ef | grep nginx

访问网页查询 curl 127.0.0.1

  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

  1. 设置下载源

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

  1. 安装运行时

sudo yum install dotnet-runtime-5.0

sudo yum install aspnetcore-runtime-5.0

三、上传发布的项目文件并创建服务

  1. 安装工具WinSCP
  2. 使用WinSCP在linux服务器创建服务目录
  3. 将vs2019发布的项目使用WinSCP上传到指定目录
  4. 使用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 回车

  1. 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代理和防火墙

  1. 查看防火墙状态

firewall-cmd --state

  1. 启动防火墙

service firewalld start

  1. 添加指定的端口

firewall-cmd --zone=public --add-port=80/tcp

firewall-cmd --zone=public --add-port=5000/tcp

  1. 查看网口

ifconfig

  1. 添加网口到公开区域中

firewall-cmd --zone=public --add-interface=ens192

  1. 添加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;

#    }

#}

}

五、运行截图

  1. nginx运行截图
  1. Aspnetcore api运行截图

也可以输入:http://192.168.11.120/shopconfigservice/swagger/index.html 测试

六、发布更新

  1. 发布邮件接口服务

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

  1. 发布邮件发送服务

使用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指南的更多相关文章

  1. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  2. ASP.NET Core 发布至Linux生产环境 Ubuntu 系统

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...

  3. 发布《Linux工具快速教程》

    发布<Linux工具快速教程> 阶段性的完成了这本书开源书籍,发布出来给有需要的朋友,同时也欢迎更多的朋友加入进来,完善这本书: 本书Github地址:https://github.com ...

  4. SQLServer 2008 R2 发布订阅配置指南

    原以为配置SQLServer 2008 R2的发布订阅很简单,实际配置后才发现过程中有问题地方一直都没搞明白,最后经过几天的查找问题和实践,终于搞定了.现将过程记录如下. SQLServer 2008 ...

  5. Core 发布至Linux

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统 ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而 ...

  6. DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区

    DS Scheduler 0.7 发布,Linux 调度系统 - 开源中国社区 DS Scheduler 0.7 发布,Linux 调度系统

  7. ASP.NET Core 网站发布到Linux服务器

    长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.N ...

  8. ASP.NET Core 网站发布到Linux服务器(转)

    出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...

  9. .netcoreapp 发布到 linux 的问题,vs靠不住

    .netcore 2.0 发布后,小版本更新速度惊人 截止目前:2.1.200 最新一个新项目,vs发布到linux@debian9一直报错,反复发布n次依然失败.把本地2.1.100更新到最新2.1 ...

  10. java项目发布到linux服务器,tomcat正常启动但没加载项目

    问题描述: java项目发布到linux服务器,一切操作正确,linux命令启动tomcat后,查看日志启动tomcat正常,上传的war包已经解压成功,但是tomcat没加载项目. 解决方法: 1. ...

随机推荐

  1. Chrome 安装 Vue Devtools 调试工具

    源码下载地址:https://github.com/vuejs/vue-devtools Make sure you are using Node 6+ and NPM 3+ Clone this r ...

  2. mit6.s081 lab1:Unix Utilities

    1 sleep(easy) 要求:为 xv6实现 UNIX 程序睡眠; 睡眠需要暂停一段用户指定的时间.刻度是由 xv6内核定义的时间概念,即定时器芯片两次中断之间的时间.解决的程序应该在 user/ ...

  3. 【HZERO】宏函数

    宏函数配置

  4. 【调试】ftrace(三)trace-cmd和kernelshark

    之前使用ftrace的时候需要一系列的配置,使用起来有点繁琐,这里推荐一个ftrace的一个前端工具,它就是trace-cmd trace-cmd安装教程 安装trace-cmd及其依赖库 git c ...

  5. vue 路由跳转页面不刷新

    vue 路由跳转页面不刷新 点击打开视频讲解地址在router-view 里边添加 :key="$route.fullPath"

  6. Vue中如何使用sass实现换肤(更换主题)功能

    Vue中如何使用sass实现换肤(更换主题)功能 https://blog.csdn.net/m0_37792354/article/details/82012278

  7. Vue-pdf实现在线预览PDF文件

    前言 在大多数项目中都会遇到在线预览PDF文件,项目使用的是element ui,使用vue-pdf实现. 安装依赖 npm install --save vue-pdf 相关参数 参数介绍: url ...

  8. chage详解:liunx账户密码过期时处理

    公司安装elasticSearcher7.10.2版本时提示账户密码过期,可以做以下的处理方式: 一.查看账户的使用情况 chage -l baikang [root@localhost ~]# ch ...

  9. 通过 Feign 进行文件上传

    转载请注明出处: 项目为spring cloud 项目,项目中对各部分能力业务进行了拆分,将公共的服务能力放在一个模块当中,通过 Feign 的方式 进行调用,feign 调用的本质还是http内部通 ...

  10. idea报错 "cannot access ..."的解决办法

    File -> Invalidate Caches -> Invalidate and Restart