Visual Studio Live 倒计时2天,当然这是美国倒计时两天,中国应该是在3月8日的凌晨,正值"3.8妇女节"。提前祝广大的女性同志节日快乐,当然还有奋斗在一线的程序媛们。

  言归正传,在昨天的dotnet core Web发布到Linux中,遗留的问题,我们继续探讨。首先了解下Nginx是什么,这个我也并不是很了解,记得在前段时间,在看H5移动开发的时候,用到过,但也并没有深入研究。先看下来自百度百科的解释:

Nginx ("engine x") 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

  实际上这就是一个轻量级的服务器,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应用程序的更多相关文章

  1. CentOS 7 Nginx部署.NET Core Web应用

    部署.NET Core运行时 必要前提 在安装.NET Core前,需要注册Microsoft签名秘钥并添加Microsoft产品提要,每台机器只需要注册一次,执行如下命令: sudo rpm -Uv ...

  2. nginx部署dotnet core站点

    步骤 aspnetcore程序端口号5001,实际外部端口号8001,相当于把8001收到的请求转发给5001. 把发布出来的文件全部丢掉 /var/www/JuXiangTou 里面去.可以用scp ...

  3. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (三) 部署运行WEB API项目

    部署dotnet Core Web API 上一步的文章,是我们公司最核心的一个ORM组件,在中标麒麟系统完成了一个插入数据的任务,这一步是将正式的从dot net framework 迁移到 dot ...

  4. Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站

    前言 本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK.创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目. 安装 .NET ...

  5. 2017-03-05 CentOS中配置守护服务(Supervisor)监听dotnet core web程序的运行

    我们继续解决上篇博客的问题,我这个人有个毛病,不喜欢遗留什么问题,也不喜欢问题说不明白,具体要怎么解决一定要详尽,因为经常自己遇到问题的时候,去翻别人的博客,就会遇到这样的问题,很苦恼,又说废话了. ...

  6. [C#]使用 C# 代码实现拓扑排序 dotNet Core WEB程序使用 Nginx反向代理 C#里面获得应用程序的当前路径 关于Nginx设置端口号,在Asp.net 获取不到的,解决办法 .Net程序员 初学Ubuntu ,配置Nignix 夜深了,写了个JQuery的省市区三级级联效果

    [C#]使用 C# 代码实现拓扑排序   目录 0.参考资料 1.介绍 2.原理 3.实现 4.深度优先搜索实现 回到顶部 0.参考资料 尊重他人的劳动成果,贴上参考的资料地址,本文仅作学习记录之用. ...

  7. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (二) 部署运行控制台项目

    背景 在上一篇文章安装dotnet core,已经安装好dotnet core了.之前只是安装成功了dotnet, 输入dotnet --info,可以确认安装成功了,但是在运行代码时,还是报错了,本 ...

  8. 部署Dotnet Core应用到Kubernetes(一)

    最近闲了点,写个大活:部署Dotnet应用到K8s.   写在前边的话 一直想完成这个主题.但这个主题实在太大了,各种拖延症的小宇宙不时爆发一下,结果就拖到了现在.   这个主题,会是一个系列.在这个 ...

  9. 如何使用Docker部署一个Go Web应用程序

    熟悉Docker如何提升你在构建.测试并部署Go Web应用程序的方式,并且理解如何使用Semaphore来持续部署. 简介 大多数情况下Go应用程序被编译成单个二进制文件,web应用程序则会包括模版 ...

随机推荐

  1. Windows下批处理文件(.bat)的使用

    cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多.cmd文件只 ...

  2. D3D9和OpenGL加载纹理图片的API是哪个?

    D3D9 创建一个空纹理,当返回 S_OK 且 ppTexture 纹理对象指针不为 NULL 时,则表示该函数调用成功. HRESULT D3DXCreateTexture( _In_  LPDIR ...

  3. LINUX的LAMP环境搭配

    在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境 最近转向到了使用ubuntu做 桌面,安装好系统以来一直都没配置lamp开发环境.由于很久以来没有自己编译安 ...

  4. MySQL事务隔离级别,锁(转)

    add by zhj: 本文针对的是MySQL的InnoDB存储引擎,不适用于MySQL的其它存储引擎和其它数据库 原文:MySQL数据库事务隔离级别(Transaction Isolation Le ...

  5. 007-搭建框架-开发AOP框架

    一.代码地址 https://github.com/bjlhx15/smart-framework.git 二.代码编写 2.1.定义切面注解 增加Aspect注解 package com.lhx.s ...

  6. Matlab mser(最大极值稳定区域)

    在Matlab R2013a 和R2014a中已经实现MSER特征的提取. 一.函数detectMSERFeatures 输入的是M*N的灰度图片.可以指定阈值刻度,区域范围,感兴趣区域等参数. 输出 ...

  7. 关于 Content-Type:application/x-www-form-urlencoded 和 Content-Type:multipart/related(转)

    转至:http://www.cnblogs.com/taoys/archive/2010/12/30/1922186.html application/x-www-form-urlencoded: 窗 ...

  8. 【转】dmesg 时间转换

    dmesg 时间转换 dmesg 输出的格式不易查看,可以通过命令进行转换. 记录如下: 时间查看: date -d "1970-01-01 UTC `echo "$(date + ...

  9. iOS 几种常用的 crash log 崩溃信息调试方法

    前言:crash log 对 定位崩溃问题 ,并且不容易复现,尤其是及时对appstore 上正在运营的 app 的迭代改进来说 非常重要. 1 crash两种情况 1.1 测试环境下 追踪bug 1 ...

  10. Python学习进程(6)函数

        函数最重要的目的是方便我们重复使用相同的一段程序.     (1)函数的定义: 函数定义的简单规则: 1.函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(): 2.任何传入参数和 ...