一、概述

        Nginx是一个反向代理服务器。什么是反向代理?

        反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

        简单的示意图如下。Nginx服务器可以视为一个中介。

                                              客户端   《==》  Nginx服务器  《== 》内部服务器

二、安装

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

         我选择了给windows的稳定版本。

从头开始学Nginx_nginx

          下载后解压。效果如图所示。

 

从头开始学Nginx_html_02

三、基本使用

         nginx的基本命令如下。

start  nginx            开启nginx

nginx -s quit          关闭nginx

nginx -s reload      配置文件被修改后,重新部署一下

         怎么玩呢?

         在nginx的目录下,我这里是D:\nginx\nginx-1.14.2,按住Shift,右击选择Open command windows here ,就能在这里快速的打开DOS命令。

          先输入 start nginx。

从头开始学Nginx_nginx服务器_03

           然后再浏览器输入:​​http://localhost:80​​。出现下面的画面,说明启动成功。

从头开始学Nginx_nginx_04

           然后再输入nginx -s quit命令来尝试关闭nginx服务器。

从头开始学Nginx_nginx服务器_05

           再次访问​​http://localhost:80​​,访问不到。说明成功关闭了nginx服务器。

从头开始学Nginx_nginx服务器_06

四、尝试访问本地的静态资源

        nginx服务器的配置文件是:config / nginx.conf 文件。

        我们先来尝试修改server的相关配置。

        server.listen是Nginx服务器的基本端口,server_name是服务器的名字。启动Nginx服务器后,访问localhost:80,就能够访问到Nginx的欢迎页面。

        server.location是我们要学习的核心。location表示反向代理的路径。URL将会用"/"表示root代表的路径。现在root规定的路径是"D:\pic"。所以我在"D:\pic"目录下放了一张美女。启动Nginx服务器后,采用 "server_name/图片名.jpg"的方式,尝试访问本地的图片。

#HTTP服务器
server {
#监听80端口,80端口是知名端口号,用于HTTP协议
listen 80;
#定义使用localhost访问
server_name localhost;

#编码格式
#charset koi8-r;

#access_log logs/host.access.log main;

#反向代理的路径,用“/”表示root规定的路径
location / {

#指向webapp的目录
root D:\pic;
#首页
index index.html index.htm;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

         

从头开始学Nginx_html_07

         在浏览器访问:​​http://localhost/MM.jpg​​,就能访问到这个图片了。当然咯,你的Nginx服务器要开着。修改配置文件后要重启一下或者使用之前说的reload的命令。

从头开始学Nginx_nginx_08

五、修改默认端口并指定文件夹

        首先修改server下的配置,把listen改为85,root改为 /NXserver/

server {
listen 85;
server_name 127.0.0.1;


location / {
root /NXserver/;
index index.html index.htm;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}

        因为我的Nginx安装在D盘,所以我就在D盘上创建一个文件夹NXserver,并放入一个文件2.jpg。如果部署到LINIX下,只需要NXserver文件夹与Nginx服务器安装目录在同一个位置即可。

        

从头开始学Nginx_nginx_09

         刷新Nginx服务器

         

从头开始学Nginx_nginx_10

          在浏览器访问​​http://localhost:85/2.jpg​​,效果如图所示。

从头开始学Nginx_nginx服务器_11

六、Nginx与Tomcat实现负载均衡(未写完)

        (1)首先下载两个tomcat,放到Nginx目录下面

从头开始学Nginx_nginx_12

打开Tomcat的conf目录下的server.xml。共需要修改三处。

  

从头开始学Nginx_nginx服务器_13

 

从头开始学Nginx_nginx服务器_14

从头开始学Nginx_nginx服务器_15

        第二个Tomcat也一样。

从头开始学Nginx_html_16

从头开始学Nginx_nginx_17

从头开始学Nginx_nginx_18

        (3)修改TOMCAT的默认启动的JSP。只是为了区别开启的到底是哪个JSP即可。

从头开始学Nginx_html_19

         启动后看效果

从头开始学Nginx_nginx服务器_20

从头开始学Nginx_html_21

 

OK,现在我们可以开始配置Nginx来实现负载均衡了,其实非常的简单,只需要配置好Nginx的配置文件即可:

          其实非常简单,就是把location的请求,使用proxy_pass 转发给 biubiubiu.com的upstream。

http {
include mime.types;
default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

#服务器的集群
upstream biubiubiu.com { #服务器集群名字
server 127.0.0.1:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配的概率越大。
server 127.0.0.1:28080 weight=2;
}

#HTTP服务器
server {
#监听80端口,80端口是知名端口号,用于HTTP协议
listen 80;
#定义使用localhost访问
server_name localhost;

#编码格式
#charset koi8-r;

#access_log logs/host.access.log main;

#请求转发给名为biubiubiu.com 的 upstream
location / {

proxy_pass http://biubiubiu.com;
proxy_redirect default;
}


error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

}