nginx的应用(window环境下)

  • nginx(背景)

    nginx是一个高性能的HTTP服务器,以前我经常在linux系统中配置,主要做反向代理和负载均衡,最近根据业务需要,需要在window中配置反向和负载,下面就介绍一下nginx的安装与使用

           

          下载解压:

            

 

 

           进入nginx文件夹,双击nginx.exe即可简单启动【命令在最后会贴出来】

           双击后黑窗口闪退,可以在任务管理器中查看nginx进程

            

 

           然后在浏览器输入localhost

          

      nginx的简单启动已经测试通过

      注意:根据不同的系统可能会出现80端口被占用的情况,eg,在win10下,80端口可能被IIS程序占用,只需要改nginx的默认端口就行了


 

  • nginx的反向代理

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

    正向代理:只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中

    图解反向代理和正向代理[补充]

      正向代理类似一个跳板机,通过跳板机去访问外部资源

      

      正向代理的用处:

        (1)访问原来无法访问的资源,如google

             (2) 可以做缓存,加速访问资源

                  (3)对客户端访问授权,上网进行认证

                  (4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息

    反向代理:

      

      反向代理的好处:

          保证内网的安全,负载均衡


 

  • nginx的反向代理配置

    上面已经简单介绍反向代理与正向代理的区别,这样有助于大家理解反向代理的好处,下面就具体介绍一下nginx反向代理的配置

      在介绍反向代理之前先给大家说一下动静分离的问题:

      动静分离的处理也是nginx的一个特点,把静态文件交给nginx来处理,可以增加系统的性能,把大批量的静态文件以nginx的方式去加载,然后去访问,不用在系统请求中获得,减少与系统交互次数,这也是系统优化的一种方式:

      配置文件如下:nginx.conf

        

 

     然后重启nginx    nginx  -s  reload即可     验证如下

      

       上面这是配置动静分离的步骤,这也是反向代理的一种特殊情况,下面我来配置一下关于tomcat的反向代理

      反向代理的配置文件如下:

        

    验证如下:

      

 

      到这,单个server下的配置反向代理已经基本完成,多个server块下的配置与此类似,在此不在多放截图,有兴趣的可以自己手动配置一下进行验证


  • nginx的负载均衡

    nginx的负载均衡是nginx的一个亮点,也是核心点,nginx的高并发,服务器的合理请求划分都是通过负载来直接或者间接实现的,下面我介绍集中负载均衡的实现以及适用场景

    负载均衡:把原先一台服务器的请求分发到不同服务器,以实现服务器减压的目的。(个人理解)

          负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性(百度)

    负载均衡的分类:软件负载均衡和硬件负载均衡     软件主要包括(nginx,lvs,netscaler)    硬件主要包括F5

    下面我简单配置一下负载均衡的实现:需要至少两台tomcat服务器进行模拟。

      

      关于负载均衡的几种方式参考   http://www.cnblogs.com/huhongy/p/7300118.html

      


 

      关于nginx的命令,主要有

       有dos命令进如nginx的文件夹下

       start nginx    启动nginx   在任务管理器中查看

       nginx -s reload    重新加载配置文件使其生效

       nginx -s stop   关闭    任务管理器中kill

       nginx -s quit   关闭    任务管理器中kill

       其他命令自己百度

 


 

补充:

nginx一些常见问题:    root和alias的对比区别:

   location /h2 {
            alias     d:/newfiber/;
            index    index.php index.html index.htm;
            autoindex on;
        }
            
    location /maven {
            root     d:/newfiber;
            index    index.php index.html index.htm;
            autoindex on;
        }
   注意:1>alias  路径后面必须有 /   root 可加可不加
            2> alias 访问的就是alias的指定文件(夹)路径
                root访问的是组合路径   路径+ uri    
               eg:
                alias  :   d:/newfiber/;
                root   :  d:/newfiber/maven

2 proxy_pass配置说明 主要看proxy_pass http://localhost:8888 | http://localhost:8888/ 最后是否有 /

   # 不带 /     location  /gitbucket
   # proxy_pass http://localhost:8888; ---------> location 的 /gitbucket 作为一级目录

   # 带 /       localtion /gitbucket
   # proxy_pass http://localhost:8888/; --------->location 的 /gitbucket 不作为一级目录


   location /gitbucket {
     proxy_pass http://localhost:8888/gitbucket/;
     proxy_set_header Host $host;
     proxy_set_header X-Forwarded-For $remote_addr;
   }

 


启动脚本:  生成bat文件放入到nginx的安装目录下

  https://blog-static.cnblogs.com/files/huhongy/nginx%E5%90%AF%E5%8A%A8%E8%84%9A%E6%9C%AC.bak.js

  

@echo off
rem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程
nginx.exe -s stop

rem 测试配置文件语法正确性
nginx.exe -t -c conf/nginx.conf

rem 显示版本信息
nginx.exe -v

rem 按照指定配置去启动nginx
nginx.exe -c conf/nginx.conf

 

  

 

posted @ 2019-02-15 16:02  陽66  阅读(303)  评论(0编辑  收藏  举报