.Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀
一、Centos7.3的安装
打开VirtualBox,点击新建,如下图所示:
点击“下一步”,弹出下面的对话框,调整内存大小,建议设置为2G,这样操作更流畅点
设置好,点击“OK”,再点击“启动”,就进入到Centos的安装界面,
点击“软件选择”,弹出下面的界面,选择下面图中所标注的,测试环境没必要最小化安装,这样对于我这样的菜鸟来说,操作方便点。
点击“网络和主机名”,弹出下面的提示框,点击“开启”:
选择好之后,就等待安装,安装的到最后会让你设置root账号的密码,建议设置一下,右边的创建用户暂时先不设置,到此已经安装成功了,重启一下即可。这里我就一笔带过,因为网上都有安装的教程我就不啰嗦太多。
二、Nginx的安装
(1)环境调试确认
- 确认系统网络
- 确认yum可用
- 确认关闭IPtables规则
- 确认停用selinux
1)确认网络可用
2)确认yum可用
yum list|grep gcc #列出所有的gcc信息
3)关闭IPTable
如果你熟悉的话可以不用关,但对于我这样的菜鸟,我还是先关闭它。
iptables -L
iptables -F
iptables -t nat -L
iptables -t nat -F
4)关闭SeLinux
getenforce 查看SeLinux的状态,如果不为Disabled则,修改为该状态
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
这里我已经修改为了disabled
创建属于自己工作的目录,我的个人习惯:
cd /opt
mkdir app download logs work backup
(2)快速安装Nginx
- 新建一个nginx.repo文件,
- 把官网中对应的yum源复制到新建的nginx.repo文件中,并做一下修改:
注意:OS改为:centos OSRELEASE改为:7
- 修改完 :wq保存并退出。
- 使用:yum list | grep nginx 列出相关版本信息
- 使用:yum install nginx 安装
安装完之后,执行下面的命令,可以查看对应的版本信息
关于Nginx更多的知识以后有机会再给大家介绍,目前只要成功安装Nginx就OK了。
systemctl start nginx #启动nginx systemctl enable nginx #设置nginx的开机启动
然后在 CentOs系统 打开浏览器 输入 :192.168.0.109 (使用ifconfig查看IP)
看到下面 的页面说明安装成功,并启动成功了:
(3)安装.Net Core SDK(目前是2.0.2版本)
可以参考微软的文档,非常详细:https://www.microsoft.com/net/learn/get-started/linuxcentos
(4)配置防火墙
- 查看firewall服务状态
systemctl status firewalld
- 查看firewall的状态
firewall-cmd --state
- 开启、重启、关闭、firewalld.service服务(如果关闭了请打开)
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
# 开放80端口(如果想在外面可以访问到,要开启80端口)
firewall-cmd --permanent --add-port=80/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload# 参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、--permanent:表示设置为持久;
3、--add-port:标识添加的端口;
三、项目发布并部署
- 把发布好的项目,上传到Centos的/opt/app/demo1/目录下面:
注意:上面的项目一定要在Startup.cs文件的Configure方法中添加下面的代码:(标红的部分)
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
}); app.UseAuthentication();//注意添加这段代码就是想说明,如果有该段代码,则添加的代码一定要在该代码的前面添加,如果没有需求则可以去掉,上面的项目中是没有改段代码的
- Nginx的配置
修改下面目录中的default.conf文件:
内容替换为:
- 配置守护服务(supervisor)
yum install python-setuptools
easy_install supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
修改:supervisord.conf
修改内容为最后面的部分:
其中files= conf.d/*.conf修改为:files = supervisord.d/*.ini
在再改目录下面创建一个目录,如下图所示:
进入上面创建的目录里面,新建一个文件:MiaoSha.ini
内容为:
修改完之后,执行下面的命令:
supervisord -c /etc/supervisor/supervisord.conf
supervisorctl reload
好了,现在可以在浏览器中输入:192.168.0.109:80,即可访问,但是我想开机的时候,就启动,需要做一下的配置:
- 配置Supervisor开机启动
打开目录 /etc/systemd/system/ 新建文件 miaosha.service
内容:
然后执行:
systemctl enable miaosha.service
systemctl start miaosha.service
systemctl status miaosha.service
如果上图中出现同样的结果,说明已经配置成功,我们重启电脑,不用dotnet MiaoSha.Admin.dll了,即可在虚拟机中访问:192.168.0.109而且也可以在外面的浏览器中访问,下面展示这两种访问结果:
在虚拟机中访问:
本地访问:
四、总结
在部署的时候,也参考了 “ 农码一生” 的相关文章,但怎么也配置不成功,一直报502错误,后来参考了官网的配置,和自己摸索,终于部署成功,遇到很多坑,建议大家不要只看,动起手来,你就会知道其中的酸爽!好了,分享到这里吧,希望对你有帮助!
五、问题
后面会把写好的项目部署到阿里云上,如果遇到问题,会第一时间更新。
(1)首先感谢那些帮助我的人,很感谢!没有你们的帮助可能我会消耗更多的时间。
状态:已解决
时间:2017年11月14日晚
问题:站点可以访问,js css jpg加载不出来报404
解决办法:
1)首先我们看看发布的这个项目代码 Program.cs和Startup.cs文件的代码:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
} public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.UseUrls("http://localhost:5000")
.Build();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{ app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
}); app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Login}/{action=Login}/{id?}");
});
}
2)Nginx的配置
3)访问结果:(图片、js、css、json文件404,即使你再路径前面加上wwwroot还是报404)
出现问题的原因是很多的,在保证你代码总的图片路径是正确的前提下,可能的原因是:反向代理的路径下找不到文件,需要单独指定js css文件的访问路径。
修改Nginx的配置如下(重启Nginx):
注意:root后面的路径,之前我的路径没有加上wwwroot/ 还是报404,加上之后再访问就没有问题了,可以在上面的()里面添加你的静态资源文件的后缀名,这样Nginx就可以直接转发请求的静态资源文件。
expires 1d 表示缓存的时间,如果这些静态资源基本上没有变化的话,可以把该值设置大点。
(2)
状态:已解决
时间:2017年11月15日晚
问题:在配置supervisor时,配置完成,启动时遇到:cannot unlink stable.sock什么之类是问题
解决办法:重新安装supervisor,具体可以参考:
- 配置守护服务(supervisor)配置节
(3)
状态:已解决
时间:2017年11月26日11:56:12
问题:Centos7.3手欠更新一下最新的.Net Core SDK 2.0.3,使用dotnet -version 发现:bash dotnet 未找到命令
原因:微软的pkg包居然没有添加环境变量, 也没有软连接dotnet
解决办法:更新了是不是还需要再安装一下,于是就重新安装了一遍,但是还报上面的错误。最后添加了一下软连接
step1:
step2:
step3:
注意:是把第二个:usr/share/dotnet/dotnet 挂到 /usr/local/bin/dotnet
作者:郭峥
出处:http://www.cnblogs.com/runningsmallguo/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
.Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀的更多相关文章
- .Net core2.0+Mysql5.7部署到CentOS7.5完整实践经验
本文为本人最近学习将.Net Core部署到Linux的一些经验总结,也提供点也和我一样对Linux接触不多的.Net Core开发者. 一.部署用到的环境和工具 1.Linux采用最新的CentOS ...
- .Net Core2.0 + Nginx + CentOS 部署
准备把项目往Linux上迁移,整个流程跑了一下,也遇到无数个坑...以下为亲测并修改后的完整流程... 安装ZIP yum install -y unzip zip Putty:WINDOWS上传文件 ...
- Zabbix3.0安装与部署(centos7)
注:整理至http://blog.51cto.com/afterdawn/1923359 1 需要先搭建LAMP环境 http://www.cnblogs.com/cation/p/8882910.h ...
- .NET Core2.0+MVC 用Redis/Memory+cookie实现的sso单点登录
之前发布过使用session+cookie实现的单点登录,博主个人用的很不舒服,为什么呢,博主自己测试的时候,通过修改host的方法,在本机发布了三个站点,但是,经过测试,发现,三个站点使用的sess ...
- .net core2.0半年的使用经验之前言
目录 前言 使用dapper做数据层调用 使用T4模板生成 使用缓存 使用swagger做接口文档(非restful) 使用identity做身份认证 使用jwt做身份认证 使用CORS跨域 调用we ...
- asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)
原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...
- asp.net core2.0网站的环境搭建和网站部署
使用到的软件和硬件 1. centos7.3服务器一台 2. xshell.xftp 3. vs2017 4. .NET Core 1. 安装 li ...
- 将asp.net core2.0项目部署在IIS上运行
原文:将asp.net core2.0项目部署在IIS上运行 前言: 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...
- Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)
准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796. ...
随机推荐
- Android打包版本号设置
之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本. 晚上学习了如何配置打包名称,很简单,修改build.gr ...
- android中跨线程向控件传值的问题
activity.oncreate(bundle savedinstancestate)中创建一个handler类的实例, 在这个handler实例的handlemessage回调函数中调用更新界面显 ...
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记 1.什么是jsp JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术.JSP/Servlet规范.JS ...
- Spring读书笔记——bean解析
前情回顾 上篇<Spring读书笔记--bean加载>我们从代码角度介绍了有哪些类负责解析XML文件,又是如何一步步从XML格式脱变成我们熟悉的bean的,直到DefaultBeanDef ...
- 使用BigQuery分析GitHub上的C#代码
一年多以前,Google 在GitHub中提供了BigQuery用于查询的GitHub上的开源代码(open source code on GitHub available for querying) ...
- win10 uwp 存放网络图片到本地
有时候我们的网络很垃圾,我的的UWP要在第一次打开网络图片,就把图片存放到本地,下次可以从本地打开. 有时候用户使用的是流量网络,不能每次都联网下载. 我们不得在应用存放用户打开的图片. 这就是先把图 ...
- formData 无需form异步上传多个图片
上周帮其它公司套一下一个web端微信投票系统的后台接口,遇到了一个图片以及视频上传报名的小问题,网上实现方式有很多但都不是ui上面的效果,于是自己动手改造了一个.先来看看效果图 流程很简单,就是点击每 ...
- LINUX 笔记-netstat命令
netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...
- (转)uml各类图
原文:http://www.cnblogs.com/way-peng/archive/2012/06/11/2544932.html 一.UML是什么?UML有什么用? 二.UML的历史 三.UML的 ...
- 大话JPA
JPA 是什么 Java Persistence API:用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层: 首先看一下传统方式访问数据库 ...