最近在学习nginx的反向代理和负载均衡的运用时,觉得挺简单的,但是还是想写一篇博客用于记录自己的学习过程。

  

好的,我们进入正题

   Nginx(engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。

   其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

 引入眼帘就是各种的专业名词,虽然我并不太了解这些专业名词说包含的意义和具体使用,但就我目前而言,只要能学会使用Nginx实现反向代理技术,就已经足够了。

   Nginx是一个特别轻量级的反向代理服务器,整个软件包3M多一点,却可以支撑起高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。

   Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,

 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多。处理静态文件,索引文件以及自动索引;打开文件描述符缓冲。无缓存的反向代理加速,简单的负载均衡和容错。

 FastCGI,简单的负载均衡和容错。

接下来,让我们来简单了解一下Nginx的简单用法:

  首先我们需要下载一个Nginx的软件包,这里我使用的是nginx-1.9.0版本的软件包,解压出来以后,是这个样子的:

  

  conf:配置文件所在的文件夹(存放着Nginx的一堆配置文件)

html:Nginx的自带首页文件夹(存放着Nginx的index.html和50x.html)

  logs:Nginx的日子文件夹(在启动失败的时候会生成error.log,启动成功以后会生成一个存放着Nginx启动时获得的pid的PID文件)

  目前主要用到的文件夹基本就这么几个。

这里说一下我的需求:

  我有一个测试项目,里面有用到文件上传组件,文件上传以后存放在本地的F:盘下,我想通过访问一个类似域名的形式,请求到文件,具体需求就是这样。

  首先:文件在上传到本地时的路径是:F:\demo\demo-upload\年\月\日\时\

  存入到数据库中的部分为:年\月\日\时\*****文件名

  虚拟地址为:image.demo.com

  接下来我们来实现这个小功能:

  1.首先,我们需要配置Nginx的conf目录下的nginx.conf

  让我们先来看看nginx.conf文件长啥样

  

 主要的配置需要在http这对大括号中来编写

  

  我们在http大括号中写入上面的配置

  server表示服务的意思,listen代表监听的端口,location表示需要转向的参数 root表示本地文件系统

  编写了上面的配置之后,我们的需求已经快完成了。

  接下来,我们还需要修改hosts文件中的hosts域名

  hosts文件存放在WINDOWS文件系统的:C:\Windows\System32\drivers\etc 目录下

  我们在hosts文件中加入我们的虚拟路径,指向本地IP

  127.0.0.1 image.demo.com  然后把文件保存

  接下来我们就可以开始启动Nginx了

  首先  我们进入到Nginx的根目录,也就是能看到Nginx.exe那一层文件夹

  然后双击运行.exe文件

  我们也可以使用cmd命令行来启动Nginx  我们需要切换到Nginx的根目录下,然后输入指令:start nginx 然后回车

  如何验证Nginx是否成功启动?

  我们打开浏览器,地址栏输入:http://localhost:80 如果出现以下页面,就代表你的Nginx已经成功启动了

  

  如果显示的是其他的内容,说明启动可能出错了,那我们就需要找启动失败的原因了,我们切换到Nginx根目录下的logs文件夹中

  有一个error.log文件,打开它  出现如下错误信息:

  2019/04/26 09:59:03 [emerg] 16136#10460: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

  该错误信息描述的是:80端口被占用了

  这个时候 我们就需要去看一下  是哪个应用在占用我的80端口

  打开cmd输入:netstat -ano 可以看到被监听端口的使用信息:

  我这里是被 ssl(internet infomation services) 把80端口占用了,我们去找一下这个服务,去把它安排一下。

  此电脑>右键属性>控制面板主页>程序>启用或关闭windows功能 >找到ssl 把前面的框取消勾选

  好的  我们再来试一下

  进入命令行,切换到Nginx的根目录下  输入 start nginx 回车  窗口一闪而过,好的 验证一下

  浏览器地址栏输入:http://localhost:80,启动成功了

  然后我在浏览器中输入我的虚拟路径:http://image.demo.com/****/**/**/**/*******.jpg

  成功出现了我上传的图片,到此,简单的反向代理已经实现了。

  这是我的第一篇博客,记录的是很简单的一个Nginx反向代理的初级应用技术,在不久的下一篇中,我会记录我学习Nginx实现负载均衡的初级应用。

  

  学习是一个慢慢 积累、沉淀 的过程

 

WINDOWS下nginx实现本地支持的图片服务器反向代理的更多相关文章

  1. windows 下nginx配置php支持

    修改nginx配置 location ~ \.php$ { root D:/Learn/php/test/; fastcgi_pass ; fastcgi_index index.php; fastc ...

  2. Windows下Nginx实现负载均衡

    Apache,Nginx Apache和Nginx都属于属于 静态页面服务器,都有插件支持动态编程语言处理,但Nginx的IO模比Apache更适合跑代理.所以一般都作为前端缓冲代理(Nginx的反向 ...

  3. [转]Windows 下 Nginx+IIS 使用

    本文转自:https://blog.csdn.net/chihen/article/details/52698594 Windows 下 Nginx+IIS 使用 一.Nginx简介 Nginx (& ...

  4. windows下Nginx与tomcat组合简单使用

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 项目中瓦片资源越来越多,如果提高瓦片的访问效率是一个需要解决的 ...

  5. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  6. windows下nginx+fastcgi不能使用file_get_contents/curl/fopen的原因

    这两天一直在搞windows下nginx+fastcgi的file_get_contents请求.我想,很多同学都遇到当file_get_contents请求外网的http/https的php文件时毫 ...

  7. Windows下Nginx+Web.py+FastCGI服务搭建

    在搭建之前,有必要了解下什么是fastcgi,但鉴于我自己也不大了解,这里就不搬门弄斧了,请参考各种百科和官网资料. 1.资源下载 python下载地址:戳这里webpy下载地址:戳这里flup下载地 ...

  8. Windows下nginx配置多台服务器做负载均衡

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3 ...

  9. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

随机推荐

  1. Laravel篇之Laravel的安装及使用

      想搭建一个基于Lavarel和vuejs的个人网站,使用git推送到github存储,千里之行,始于足下,首先要做的用composer来下载laravel框架,并成功运行. 一.使用compose ...

  2. (一):C++分布式实时应用框架----整体介绍

    C++分布式实时应用框架 (Cpp Distributed Real-time Application Framework) 版权声明:本文版权及所用技术归属smartguys团队所有,对于抄袭,非经 ...

  3. thinkphp 3.2 去除调试模式后报错,怎么解决

    1.案例一: 最近用ThinkPHP开发一个项目,本地开发测试完成上传到服务器后,第一次打开正常,再刷新页面时就出现 “页面调试错误,无法找开页面,请重试”的错误. 我就郁闷啦,明明本地设置defin ...

  4. css 性能优化小结

    1.能用css不用js 1.鼠标悬浮展示              2.自定义radio.checkbox的样式 3.巧用css伪类 当input获取焦点时候,把右边的按钮改变样式 检测用户输入:如果 ...

  5. 如何创建.gitignore文件,忽略git不必要提交的文件

    touch .gitignore 在项目目录里输入以上名利后,会自动生成一个文件 .gitignore,可在文件里写入忽略的文件名,例如 node_modules coverage .idea npm ...

  6. 真实世界的脉络].(英)戴维.多伊奇.pdf

    [真实世界的脉络].(英)戴维.多伊奇.pdf 宇宙.时间.生命.等等,如果用量子物理学.计算机科学.进化论.认识论将这些最基本而又复杂的问题纠缠在一起时,那将会是一幅什么样的图景呢?也许,我们穷尽一 ...

  7. JavaScript Array常用属性和方法

    Array的length属性可以通过赋值改变,但这样会导致Array原有的大小发生改变. var a = ["I", "Love", "You&quo ...

  8. 移动端开发H5页面点击按钮后出现闪烁或黑色背景的解决办法

    H5页面在IOS端测试的时候发现,点击按钮会闪动,出现一个黑色的背景一闪而过,影响用户体验.最后通过度娘,找到解决方法: 就是给点击的元素添加一个CSS属性或者全局添加一个css. -webkit-t ...

  9. 2018-06-21 中文代码示例视频演示Python入门教程第五章 数据结构

    知乎原链 续前作: 中文代码示例视频演示Python入门教程第四章 控制流 对应在线文档: 5. Data Structures 这一章起初还是采取了尽量与原例程相近的汉化方式, 但有些语义较偏(如T ...

  10. Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

    Angular作为目前最为流行的前端框架,受到了前端开发者的普遍欢迎.不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学 ...