nginx是一个高性能的HTTP服务器,之前我常常在linux系统中配置,主要作反向代理和负载均衡,最近根据业务须要,须要在window中配置反向和负载,下面就介绍一下nginx的安装与使用php
下载解压:html
进入nginx文件夹,双击nginx.exe便可简单启动【命令在最后会贴出来】linux
双击后黑窗口闪退,能够在任务管理器中查看nginx进程nginx
而后在浏览器输入localhostgit
nginx的简单启动已经测试经过浏览器
注意:根据不一样的系统可能会出现80端口被占用的状况,eg,在win10下,80端口可能被IIS程序占用,只须要改nginx的默认端口就好了缓存
反向代理:是指以代理服务器来接受Internet上的链接请求,而后将请求转发给内部网络上的服务器;并将从服务器上获得的结果返回给Internet上请求链接的客户端,此时代理服务器对外就表现为一个服务器。tomcat
正向代理:只用于代理内部网络对Internet的链接请求,客户机必须指定代理服务器,并将原本要直接发送到Web服务器上的http请求发送到代理服务器中安全
图解反向代理和正向代理[补充]服务器
正向代理相似一个跳板机,经过跳板机去访问外部资源
正向代理的用处:
(1)访问原来没法访问的资源,如google
(2) 能够作缓存,加速访问资源
(3)对客户端访问受权,上网进行认证
(4)代理能够记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理:
反向代理的好处:
保证内网的安全,负载均衡
上面已经简单介绍反向代理与正向代理的区别,这样有助于你们理解反向代理的好处,下面就具体介绍一下nginx反向代理的配置
在介绍反向代理以前先给你们说一下动静分离的问题:
动静分离的处理也是nginx的一个特色,把静态文件交给nginx来处理,能够增长系统的性能,把大批量的静态文件以nginx的方式去加载,而后去访问,不用在系统请求中得到,减小与系统交互次数,这也是系统优化的一种方式:
配置文件以下:nginx.conf
而后重启nginx nginx -s reload便可 验证以下
上面这是配置动静分离的步骤,这也是反向代理的一种特殊状况,下面我来配置一下关于tomcat的反向代理
反向代理的配置文件以下:
验证以下:
到这,单个server下的配置反向代理已经基本完成,多个server块下的配置与此相似,在此不在多放截图,有兴趣的能够本身手动配置一下进行验证
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;proxysetheaderX−Forwarded−Forhost;proxysetheaderX−Forwarded−Forremote_addr;
}
@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