1.vmware虚拟机安装

https://pan.baidu.com/s/1PfCYFqRAe0DnEOZio46fng

密码:4ng4

2.CentOS 7.3安装

http://mirrors.163.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

下载完成后打开vmware准备安装......

Asp.Net Core 2.1.1初识(一)

 Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

 

3.Windows的客户端软件

Xshell下载安装:https://pan.baidu.com/s/1cPvjtTPCiYCKcxilnAOnCw  密码:voly

  作用:远程控制linux终端

WinSCP下载安装:https://pan.baidu.com/s/1eFcJALAbGnTwRnZVSJFUWg 密码:2jt2

  作用:上传发布网站文件至linux系统

进入CentOS,右键

Asp.Net Core 2.1.1初识(一)

开始第一个命令:查看IP

ifconfig -a
Asp.Net Core 2.1.1初识(一)

接下来我们试试用Xshell操控Linux终端,打开此软件...

Asp.Net Core 2.1.1初识(一)

然后输入用户名密码登录,使用root登录名登录(以为后面安装软件等操作需要root权限)

Asp.Net Core 2.1.1初识(一)

4.Net Core2.1安装

安装.net core2.1.1是因为VS2017里默认2.1.1版本,但是虚拟机里却是2.1.0,版本不同有bug。

Xshell和虚拟机终端均可输入下面命令符,但Xshell前提登录到虚拟机了

cd ~
wget https://download.microsoft.com/download/9/3/E/93ED35C8-57B9-4D50-AE32-0330111B38E8/aspnetcore-runtime-2.1.1-linux-x64.tar.gz
cd /opt/dotnet
sudo cp ~/asp*z .
sudo tar zxvf asp*z

(如果以上输入中提示有错,则用WinSCP去cd /opt/dotnet文件夹下删除2.1.0压缩包)

5.nginx 1.12.1安装

在我们用VS发布完网站并用WinSCP上传到虚拟机上,可以在虚拟机里自带的火狐浏览器中运行后,我们需要在自己电脑物理机浏览器访问,为了这个解决需求,我们需要Nginx这个反向代理服务器。好,接下来接着输入inux命令让虚拟机安装Nginx......

curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

rpm -ivh nginx.rpm

yum install nginx #安装

注意:#是Linux命令行的注释符

Asp.Net Core 2.1.1初识(一)

安装结束以后再输入两行

systemctl start nginx #启动nginx

systemctl enable nginx #设置nginx的开机启动

为了验证Linux虚拟机的nginx是否安装成功,可以在虚拟机上的火狐浏览器输入前面查到的ip地址,来看看结果......Asp.Net Core 2.1.1初识(一)

6.配置防火墙

完成Nginx的安装后,如果在自己电脑的物理机的浏览器访问不了,是因为CentOS自带的防火墙拦截了80端口,一下命令行可以解决......

firewall-cmd --zone=public --add-port=80/tcp --permanent #(开放80端口)

systemctl restart firewalld #(重启防火墙以使配置即时生效)

7.部署Asp.Net Core应用程序

接下来我们就可以试着发布第一个.net core的hello word了!

ps:从vs2015才支持core,个人建议vs2017方便一些。

按照平常的发布后看一下发布后的文件里有没有Views的文件夹,如果没有则找到项目里的.csproj文件,在PropertyGroup下加入   <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>,再重新发布。不要问为什么,.net core还在更新......

接下来打开WinSCP,帐号登录连接到Linux虚拟机......

Asp.Net Core 2.1.1初识(一)

点击登录,然后就可以看到CentOs系统的文件目录了。然后随便建个文件夹,准备放我们发布发好的程序。

Asp.Net Core 2.1.1初识(一)

Asp.Net Core 2.1.1初识(一)

接下来执行命令:

 cd /home/NetCoreDemo #这个目录 要输入你自己对应放的目录

dotnet netcoreDemo.dll # netcoreDemo.dll 这个对应你建的项目生成的dll

Asp.Net Core 2.1.1初识(一)

看到了5000 端口的一个网址,证明部署好了。注意,上面的终端不要关闭,否则下面操作将会失败,访问不会成功。
然后在虚拟机里面访问 http://localhost:5000 ,如下图......

 Asp.Net Core 2.1.1初识(一)

8.nginx配置

前面已经在虚拟机里安装了Nginx,接下来就要在项目中使用了。为了让这个项目不光能在Linux中跑起来,还要在Windows中跑起来

在WinSCP中进行操作,打开路径 /etc/nginx/conf.d ,编辑default.conf 文件内容替换为:

server {

  listen 80; location / {

  proxy_pass http://localhost:5000; 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;

  } }

  补充:以后当我们发布第二第三个网站时,需要用到不同的listen端口号......

Asp.Net Core 2.1.1初识(一)

为了让强大的Nginx正常工作,不出现页面502错误,还有一步就是要将Nginx添加到SELinux的白名单,输入以下命令行......

nginx -s reload #使其即时生效,然后这里访问下 http://192.168.233.130/ (对应你自己的centos ip,这一步好重要。应该是要先主动触发这个502错误吧)

yum install policycoreutils-python #(选y)

cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

semodule -i mynginx.pp

至此,我们就可以在物理机上通过ip访问了(不用带端口了,因为就一个默认端口,直接80 然后 nginx 转到了5000)。

9.配置守护服务(Supervisor)

为了解决关掉那个5000界面也可以访问网站,我们还要进行配置守护服务。

输入命令行:

yum install python-setuptools

easy_install supervisor #安装Supervisor

mkdir /etc/supervisor

echo_supervisord_conf > /etc/supervisor/supervisord.conf #配置Supervisor

然后WInSCP中找到supervisord.conf文件,右键编辑

Asp.Net Core 2.1.1初识(一)

在此文件的最后有

;[include] ;

files = relative/directory/*.ini

改成

[include]

files = conf.d/*.conf

结束以后再进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 netcoreDemo.conf文件
内容为:(【注意】看 第二行 第三行的 注释,根据实际名字填入,并删除下面所含文字)

[program:netcoreDemo]

command=dotnet netcoreDemo.dll ; (注意)运行程序的命令

directory= /home/NetCoreDemo/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!!

autorestart=true ; 程序意外退出是否自动重启

stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件

stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件

environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量

user=root ; 进程执行的用户身份

stopsignal=INT

结束以后,输入命令行

supervisord -c /etc/supervisor/supervisord.conf

ps -ef | grep netcoreDemo #【注意】netcoreDemo是上面 program:netcoreDemo 的命名

supervisorctl reload #重新加载

Asp.Net Core 2.1.1初识(一)

10.配置Supervisor开机启动

这么好的东西当然要开机自启了(手动滑稽)

在WinSCP中打开目录 /usr/lib/systemd/system/ 并新建文件 supervisord.service,填入内容:

# dservice for systemd (CentOS 7.0+)

# by ET-CS (https://github.com/ET-CS)

[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

结束以后执行Linux命令:

systemctl enable supervisord

systemctl is-enabled supervisord #来验证是否为开机启动

 

相关文章:

  • 2022-01-20
  • 2022-01-29
  • 2021-06-11
  • 2022-12-23
  • 2021-10-09
  • 2021-10-25
  • 2021-11-08
猜你喜欢
  • 2020-03-31
  • 2021-12-29
  • 2022-01-23
  • 2022-12-23
  • 2021-10-21
  • 2021-05-28
相关资源
相似解决方案