windows下的nginx应用

  • nginx(背景)

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

           

          下载解压:html

            

 

 

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

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

            

 

           而后在浏览器输入localhostgit

          

      nginx的简单启动已经测试经过浏览器

      注意:根据不一样的系统可能会出现80端口被占用的状况,eg,在win10下,80端口可能被IIS程序占用,只须要改nginx的默认端口就好了缓存


 

  • nginx的反向代理

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

    正向代理:只用于代理内部网络对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;proxysetheaderXForwardedForhost;proxysetheaderX−Forwarded−Forremote_addr;
   }

复制代码

 


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

  

复制代码
@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
相关文章
相关标签/搜索