1.nginx是什么

为了快速了解nginx我们先引用网上的nginx介绍:

Nginx ("engine x") 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东新浪网易腾讯淘宝等。

简单的说,就是nginx是一个http服务器,提供静态网页及HTTP代理服务。

2.为什么要用nginx,nginx能做什么?

使用nginx的好处:高性能、高并发是nginx的主要特性。功能上,首先,它可以完全代替静态网页服务器;另外,使用配合php-cgi/php-fpm服务(后面博文会讲如何配置)可以成为一台php服务器;

反向代理:除web服务器外,它的反向代理功能也是nginx的主要特性之一,用它配合其它web服务器使用可以隐藏真实web服务器软件、web端口,实现统一对外端口、域名。假如一台服务器,即要安装IIS又要安装apache 又要都使用80端口,该怎么办呢?这就头疼了,使用老办法只能一个软件使用80端口,然后建一个站点转发到另一个web服务器,这样性能又得不到保障。幸好我们有nginx,它只需简单的配置就可将80端口代理到本机其它端口,并可对静态资源提供缓存服务,性能极其高。

3.nginx工作原理

下面这张图可以清楚的描述nginx的原理

由上图可知,此服务器的架构是将本机所有的web服务器(各种端口)被nginx代理(80端口),静态网站及php站点则使用nginx直接做服务器,然后对外公开nginx,用户访问本服务器时先通过nginx然后再到各个服务器、站点。

4.windows下载安装nginx

下载的安装nginx也很简单,直接下载解压即可

官网下载:http://nginx.org/en/download.html

官网1.13.1版本下载:http://nginx.org/download/nginx-1.13.1.zip

下载完全后解压到任意目录:

直接双击nginx.exe(确保80端口没被占用),这时黑窗口一闪而过,别担心,此时nginx服务已经启动。

在浏览器中输入:localhost  或 127.0.0.1  即可看到如下:

说明nginx服务启动成功。

5.目录结构

那么,上述的结果是怎么出现的呢,是因为nginx有默认配置文件,nginx在启动时加载了默认配置文件,才使得默认页面可以正常访问。

nginx目录下的几个重要目录:

conf:配置目录

html:默认站点目录

logs:日志目录

6.配置文件

配置文件是nginx的重中之重,所有功能都是配置出来的

打开默认配置文件 conf/nginx.conf ,这个文件是nginx的标准配置文件。

可以看到里面的主要结构如下(片断) :

http{
server{
  listen:80;
server_name:localhost;
location / {
root html;
index index.html index.htm;
}
access_log logs/access_log.log;
error_log logs/error_log.log;
}
}

其中http代表web服务器配置,此节点只能有一个。

server节点代表web服务器,server节点必须在http节点下,可以有多个,每个可以端口不同或域名不同,其中listen代表端口,server_name代表域名,如有多个的话使用空格分开,如:server_name:a.com  b.com;

server下的location节点代表此web服务器如何访问(可以有多个),后面的/指的是路径,root指访问此路径的根目录(如果是代理则不需要此节点),index节点指访问此路径的默认文件名。

access_log和error_log分别是访问、错误日志存放目录。

如上配置就产生了一个静态服务器。

那么,我们如何来配置一个代理服务器呢?

服务器代理:

假如我们需要把一个网站直接代理到本机的IIS服务器(端口为808),我们需要的配置如下:

 location / {
proxy_pass http://127.0.0.1:808;
}

正规表达式:

如果要将某些符合条件的请求代理到其它服务器,则需要使用正则表达式,location后面支持正则表达式。示例如下 :

 location ~ .*\.(jsp)$ {
proxy_pass http://127.0.0.1:8080;
}

这样我们就将所有 .jsp结尾的请求都交给本机8080端口对应的服务器处理。

URL重写:

nginx支持URL重写,

我们可以将某种规则的URL重写为另一种URL,可以实现伪静态、URL美化等。示例如下 :

server {
listen 80;
server_name localhost;
root html;
rewrite ^/(.*)/([0-9]{1,}).htm$ /$1/index.jsp?id=$2;
rewrite ^/([a-zA-Z]+).html$ /index.jsp?c=index&a=$1 last;
rewrite ^/([a-zA-Z]+)/([a-zA-Z]+).html$ /index.jsp?c=$1&a=$2 last;
location / {
index index.htm index.html index.php;
}

rewrite节即为url重写规则,经过如上配置如果我们访问的是 /5689.html 则被重写后会转换为 /index.jsp?id=5689 然后再由服务器处理。

本文介绍了nginx基础知识,运行原理,windows下下载安装及常用功能配置。nginx的功能远远不只本文介绍的这些,本文只是引导我们快速入门nginx,如想学习更多,还需要自己多多努力!

nginx是什么nginx安装与配置之windows版的更多相关文章

  1. Nginx+Tomcat安装与配置(windows版)

    相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了 ...

  2. Node.js安装+环境配置【Windows版】

    Node.js安装及环境配置之Windows篇  一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Node.js:v6.9.2LTS(64位) 二.安装Node.js步骤 1.下 ...

  3. Apache下载、安装及配置(Windows版)

    一.Apache的下载 1.点击链接http://httpd.apache.org/download.cgi,找到所需版本,如下图位置: 2.点击所需版本,选择Windows文件格式,如下图位置: 3 ...

  4. node安装及配置之windows版

    一.下载地址 https://nodejs.org/zh-cn/download/ https://nodejs.org/zh-cn/download/releases/ 二.安装步骤 1.双击“no ...

  5. bat-静默安装并配置mysql(windows版)

    mysql版本 mysql-5.6.35-winx64 路径关系 @echo off Setlocal enabledelayedexpansion @REM vscode中自动开启延迟环境变量扩展, ...

  6. Nginx反向代理服务器的安装与配置

    Nginx反向代理服务器的安装与配置 时间:10月19日 Nginx反向代理有不少需要我们解决的问题,其中有不少问题是基于安装上的问题,在安装完成后的相关调试也让很多人头疼不已.下面就向大家介绍有关于 ...

  7. Apache服务器最新版下载、安装及配置(win版)

    Apache服务器最新版下载.安装及配置(win版) Apache的下载: 登录http://httpd.apache.org/download.cgi 这个地址,找到2.4.10,如下图位置:   ...

  8. MySQL数据库的安装与配置(windows)

    MySQL是目前最为流行的开放源码的数据库,是完全网络化的跨平台的关系型数据库系统,它是由瑞典MySQLAB公司开发,目前属于Oracle公司.任何人都能从Internet下载MySQL软件,而无需支 ...

  9. PyCharm和JDK安装与配置(windows)

    原创 PyCharm和JDK安装与配置(windows) mb5cd21e691f31a关注0人评论2024人阅读2020-03-20 21:08:41   一.PyCharm安装与配置 PyChar ...

随机推荐

  1. Caffe2 Tutorials[0]

    本系列教程包括9个小节,对应Caffe2官网的前9个教程,第10个教程讲的是在安卓下用SqueezeNet进行物体检测,此处不再翻译.另外由于栏主不关注RNN和LSTM,所以栏主不对剩下两个教程翻译. ...

  2. 【Netty】第一个Netty应用

    一.前言 前面已经学习完了Java NIO的内容,接着来学习Netty,本篇将通过一个简单的应用来了解Netty的使用. 二.Netty应用 2.1 服务端客户端框架图 下图展示了Netty中服务端与 ...

  3. C++ 元编程 —— 让编译器帮你写程序

    目录 1 C++ 中的元编程 1.1 什么是元编程 1.2 元编程在 C++ 中的位置 1.3 C++ 元编程的历史 2 元编程的语言支持 2.1 C++ 中的模板类型 2.2 C++ 中的模板参数 ...

  4. Unity 消息发送机制 解析

    该博客,只为解析,解析,解析,已经整理好,已经整理好,已经整理好.代码核心原理套用网上最流行的那一套,也是最常用游戏开发适用的消息机制.这里面加上自己的一些优化,极大的修正(哈哈),实测,没问题.万一 ...

  5. 读《Java并发编程的艺术》(一)

    离开博客园很久了,自从找到工作,到现在基本没有再写过博客了.在大学培养起来的写博客的习惯在慢慢的消失殆尽,感觉汗颜.所以现在要开始重新培养起这个习惯,定期写博客不仅是对自己学习知识的一种沉淀,更是在督 ...

  6. Android N多窗口支持

    Android N 可以同时显示多个应用窗口. 在手机上,两个应用可以在"分屏"模式中左右并排或上下并排显示.例如,用户可以 在上面窗口聊QQ,下面窗口发送短信. 如图所示,两个a ...

  7. 使用expect的自动化交互

    Q:利用shell脚本实现ssh自动登录远程服务器? A:expect命令 #!/usr/bin/expect spawn ssh root@172.16.11.99 expect "*pa ...

  8. python 爬取淘宝的模特照片

    前段时间花了一部分时间学习下正则表达式,总觉得利用正则要做点什么事情,所以想通过爬取页面的方式把一些美女的照片保存下来,其实过程很简单. 1.首先读取页面信息: 2.过滤出来照片的url地址: 3.通 ...

  9. JVM类加载续

    上一篇理解了JVM类加载过程的第一个阶段,这篇来说说剩下的阶段:验证.准备.解析.初始化.需要注意的是,这些阶段(解析除外)只是按照这个顺序开始,但是执行的过程中可能存在交叉. 验证:就是要对加载的二 ...

  10. Java实现的高效计数器

    本文转载地址:            http://blog.csdn.net/snarlfuture/article/details/17049731 在统计来自数据库或文本中某些内容的频率时,你可 ...