首页 > 代码库 > CentOs 7.2 + Nginx 1.10.2 + MusicStore(asp.net core mvc 3 项目)虚拟机完整搭建流程分享

CentOs 7.2 + Nginx 1.10.2 + MusicStore(asp.net core mvc 3 项目)虚拟机完整搭建流程分享

原创辛苦,谢绝转载!

               虚拟机说明

搭建这个虚拟机是为了验证Asp.net Core程序在CentOs操作系统上可以运行的。

#软件环境版本枚举
OS:CentOS Linux release 7.2.1511 (Core) 
OS Kernel:Linux version 3.10.0-327.36.3.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) ) #1 SMP Mon Oct 24 16:09:20 UTC 2016
Nginx:1.10.2
Dotnet:1.0.0-preview2-003121
Git:1.8.3.1

此虚拟机搭建步骤(全程使用root账户,可以在命令前追加sudo)
#更新操作系统,以获得最新的更新组件包
1.yum update -y
#安装微软提供的支持asp.net core的运行环境
2.yum install dotnet -y
#安装Web服务器(此处将Nginx作为返向代理服务器使用,对外发布网站服务)
3.yum install nginx -y
#安装Git工具,用于下载开源的asp.net core测试运行项目。此项目使用mvc 3框架开发
4.yum install git -y
#安装SeLinux鉴权策略辅助工具,用于辅助突破Nginx定转本地端口时linux内核的安全限定机制(可以手动修改,但是复杂度和风险性太高。因为涉及到linux内核,不建议网上找资料手动修改,大神除外!)
5.yum install policycoreutils-python -y
#配置Nginx返向代理
6.gedit /etc/nginx/nginx.conf
#成功运行配置文件配置内容如下:
worker_processes  1;   
#工作进程的个数,可以配置多个
events {  
    worker_connections  1024; #单个进程最大连接数(最大连接数=连接数*进程数)  
}  
http {  
    include       mime.types;  #设定配置文件位置,这里的conf是指nginx.conf所在的目录,也可以用绝对路径指定其他地方的配置文件   
    default_type  application/octet-stream; #默认类型-8进制文件流
    sendfile        on;  #是否激活sendfile()函数,比默认模式更有效率   
    tcp_nopush     on;  #将HTTP响应头压缩到一个包中发送,仅在sendfile开启时才能配合使用 
    #连接超时时间
    keepalive_timeout  65;  
    gzip  on;  #启用Gzip压缩
    #设定虚拟主机,默认为监听80端口   
    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;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }
}
#下载asp.net core运行项目
7.git clone  https://github.com/geffzhang/MusicStore.git
#装载项目运行时需要的动态资源。当前路径必须定位到下载的项目文件根目录。
8.dotnet restore
#更新装载的最新资源信息,匹配asp.net core项目强制版本依赖,让项目关联最新的下载资源
9.dotnet pack
#编译项目源代码生成项目dll文件以及其它项目依赖性资源。当前路径必须定位到bin文件夹同级根目录下。
10.dotnet build
#生成发布项目文件。可以理解为生成Release版本文件。执行上面步骤后,是可以直接运行的,但是上面步骤生成的dll内涵Debug信息,会影响项目实际运行的响应效率。当前路径必须定位到bin文件夹同级根目录下。
10.dotnet publish
#运行外宿主项目。运行成功后,dotnet宿主会提供默认为5000端口的内部可访问地址(http://localhost:5000)。当前路径必须定位到bin文件夹同级根目录下。
11.dotnet run
#构建基于修改SeLinux内核的授权变更脚本。生成基于当前机器对应内核版本号的定制化,用pyhton语言编写的定制内核授权脚本,基本上不可移植使用。也有例外。
12.sudo cat /var/log/audit/audit.log |grep nginx |grep denied |audit2allow -M mynginx
#执行授权脚步。如果不执行脚步的话,访问Nginx地址会报502 bad gateway错误。执行后不会出现。
13.semodule -i mynginx.pp
#启动Nginx服务
14.service nginx start
#添加5000端口到系统防火墙的白名单中。可以不开启5000端口,这样就可以屏蔽掉外网直接访问。但是调试阶段建议开启
15.iptables -I INPUT -p tcp --dport 5000 -j ACCEPT
#添加80端口到系统防火墙的白名单中
16.iptables -I INPUT -p tcp --dport 80 -j ACCEPT
#保存防火墙配置
17.iptables save
#重启防火墙服务,使上面追加的白名单端口生效。不重启端口可能访问被积极拒绝
18.service iptables restart
#访问Nginx完整URL地址。外网可访问的最终地址。
19.http://192.168.1.12:80
#--------(Tech-Worm) 2016-11-30

CentOs 7.2 + Nginx 1.10.2 + MusicStore(asp.net core mvc 3 项目)虚拟机完整搭建流程分享