2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序
Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节"。提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛们。
言归正传,在昨天的dotnet core Web发布到Linux中,遗留的问题,我们继续探讨。首先了解下Nginx是什么,这个我也并不是很了解,记得在前段时间,在看H5移动开发的时候,用到过,但也并没有深入研究。先看下来自百度百科的解释:
实际上这就是一个轻量级的服务器,Web服务器、反向代理服务器、电子邮件代理服务器,看来还是很强大的,那在今天的内容中,毫无疑问,它担任的是Web服务器的角色了,相当于我们的IIS服务器了,亦或是Tomcat服务器,属于轻量级。这样看的话,我们就无需惧怕它了。
首先我们来安装和启动Nginx服务,以下是安装和启动的步骤:
#1.下载Nginx包
curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#2.建立Nginx的yum仓库
rpm -ivh nginx.rpm
#3.下载并安装Nginx
yum install nginx
#4.启动Nginx服务
systemctl start nginx
#5.将nginx服务设为开机启动,这样当服务器重启也就不用手动启动服务了
systemctl enable nginx
看到这些命令行,真的是有点头大,昨天因为一些符号的问题,搞出很多错,所以大家一定要小心,下面我们按照上面的步骤进行安装:
这时nginx服务已经安装成功了,可以使用 nginx -v 命令查看版本,这里的版本是1.10.3,如果此时输入服务器的地址,那么应该可以看到Nginx的页面,默认是用的80端口,访问我自己的服务器,测试一下,大鸭梨博客,开始的时候我没有访问到,查看了下防火墙,没有把80端口开放,具体的如何开放,在上一篇博客中已经提到了,注意添加完规则后执行下reload重新应用规则,同样对nginx
服务也一样,当修改内容也要reload一下,以免出现不必要的麻烦 nginx -s reload ,具体的命令大家自行查找吧。当我添加上80端口后,重新运行,终于看到了我们想要的内容:
下面开始配置我们的nginx服务,实际上端口的转发,将我们Web应用的5000端口转发到80端口,我们需要找到一个.conf文件,在里面进行相应的配置,路径为:/etc/nginx/conf.d/default.conf ,我们先看下这个配置文件里的内容:
server {
listen 80;
server_name localhost; #charset koi8-r;
#access_log /var/log/nginx/log/host.access.log main; location / {
root /usr/share/nginx/html;
index index.html index.htm;
} #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 /usr/share/nginx/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;
#}
}
#后面的都是一些注释,里面加了一些默认的配置,具体怎么解释还是自己再查相应的资料吧,我们将其全部删掉,替换成我们要修改的内容,具体内容如下:
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;
}
}
可以看到我们将地址指向了我们的Web应用。配置完成后我们在putty里面直接查看是否修改成功,以防万一,
reload时报了个错误,注意location后面的写法“location / ”,斜杠前后都有空格,不知道怎么拷贝的时候没了,注意下,重新修改了下Ok了,我们现在去启动下Web,看是否能转发成功,期待一下。
其实是没有悬念的事,这么认真肯定是可以成功的,鼓掌!!!
那么问题又来了,我们总不能一直让这个黑色窗口开着吧,未必有点太low了,像我们强大的IIS就不会出这么个丑陋的窗口,一直是默默的为我们的服务,这篇博客就是写这么多吧,这个问题就留到下面博客中去说,以免内容太多,产生审美疲劳。
扫描二维码关注我的公众号,共同学习,共同进步!
2017-03-05 CentOS中结合Nginx部署dotnet core Web应用程序的更多相关文章
- CentOS 7 Nginx部署.NET Core Web应用
部署.NET Core运行时 必要前提 在安装.NET Core前,需要注册Microsoft签名秘钥并添加Microsoft产品提要,每台机器只需要注册一次,执行如下命令: sudo rpm -Uv ...
- nginx部署dotnet core站点
步骤 aspnetcore程序端口号5001,实际外部端口号8001,相当于把8001收到的请求转发给5001. 把发布出来的文件全部丢掉 /var/www/JuXiangTou 里面去.可以用scp ...
- 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目
部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...
- Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站
前言 本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK.创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目. 安装 .NET ...
- 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行
我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了. ...
- [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果
[C#]使用 C# 代码实现拓扑排序 目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...
- 国产中标麒麟Linux部署dotnet core 环境并运行项目 (二) 部署运行控制台项目
背景 在上一篇文章安装dotnet core,已经安装好dotnet core了.之前只是安装成功了dotnet, 输入dotnet --info,可以确认安装成功了,但是在运行代码时,还是报错了,本 ...
- 部署Dotnet Core应用到Kubernetes(一)
最近闲了点,写个大活:部署Dotnet应用到K8s. 写在前边的话 一直想完成这个主题.但这个主题实在太大了,各种拖延症的小宇宙不时爆发一下,结果就拖到了现在. 这个主题,会是一个系列.在这个 ...
- 如何使用Docker部署一个Go Web应用程序
熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...
随机推荐
- python函数的学习笔记
这篇文章是我关于学习python函数的一些总结 一.随着函数的引入,这里首先要说的就是全局变量和局部变量了. 什么是全局变量.什么是局部变量: 全局变量就是全局都能调用的变量,一般都在文件的开头,顶头 ...
- JavaWeb 之事务
什么是事务? 事务就是逻辑上的一组操作,组成事务的各个执行单元,操作要么全部成功,要么全部失败. 以转账为例: 张三给李四转账,张三扣1000,李四加1000; 加钱和扣钱两个操作组成了一个事务. 1 ...
- MySQL 第六天
回顾 外键: 关联关系(表与表之间: 表中字段指向另外一张表的主键) 外键条件: 字段类型必须一致, 存储引擎必须为innodb 外键约束: 子表约束: 不能插入父表不存在的记录 父表约束: 三种 ...
- Python线程包装器
import threading import subprocess import time def need_thread(func, *args, **kwargs): def fun(): pr ...
- [二次开发]dede文章页面怎样显示作者的头像
dede在文章页面显示作者仅仅是显示其username,可是假如我想把dede改造成较为社交化的站点.我认为是有必要显示作者的头像的,可是官方并没有相应的模版标签. 在网上看到解决问题的办法基本上是直 ...
- linux虚拟机能ping通windows主机,windows主机ping不通linux虚拟机的解决办法
分三步: 1.虚拟机网络连接方式选择Nat
- Android测试读写sd卡文件与写sd卡文件耗时
测试从sd卡读1k大小的文件,再写1k大小的文件,由于处理耗时很短,所以循环500次,查看耗时:测试写1k大小的文件,直接在内存构造一个1k的buffer,将这个buffer直接写到文件,同样循环50 ...
- python常用模块——time模块
参考博客:http://blog.csdn.net/SeeTheWorld518/article/details/48314501 http://www.jb51.net/article/49325. ...
- 序列化+protobuff+redis
背景: 当redis里面需要存储 “key-字符串,value-对象” 时,是不能直接存对象,而是需要将序列化后的对象存进redis. redis没有实现内部序列化对象的功能,所以需要自己提前序列化对 ...
- Python基础知识补充(重要)-作用域、特殊语法
Python作用域 python代码内部块如if语句内声明变量,在if代码段后在调用此变量并未报如“undefinded name"此类错误,例子如下: if 1 == 1: name = ...