Nginx介绍Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP服务器。 官方测试Nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。 应用场景HTTP 服务器,可以做网页静态服务器; 虚拟主机,可以实现在一台服务器虚拟出多个网站,例如个人网站使用的虚拟主机; 反向代理,负载均衡。 Windows环境下
官网下载解压版,双击nginx.exe启动,访问127.0.0.1展示欢迎页。 nginx.conf文件的结构nginx的配置由特定的标识符(指令符)分为多个不同的模块。 指令符分为简单指令和块指令。 简单指令格式:[name parameters;] 块指令格式:和简单指令格式有一样的结构,但其结束标识符不是分号,而是大括号{},块指令内部可以包含simple directives 和block directives, 可以称块指令为上下文(e.g. events, http, server, location) conf文件中,所有不属于块指令的简单指令都属于main上下文的,http块指令属于main上下文,server块指令http上下文。 配置静态访问
反向代理反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 配置C:\Windows\System32\drivers\etc\hosts文件,新增127.0.0.1 80.itman.com nginx.conf配置如下: server { listen 80; server_name 80.itman.com; location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } } 效果:启动一个Tomcat 127.0.0.1:8080,使用nginx反响代理80.itman.com直接跳转到127.0.0.1:8080 负载均衡(策略)负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能自动剔除。 upstream backserver { server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 80; server_name 80.itman.com; location / { proxy_pass http://backserver; index index.html index.htm; } } 2、指定权重指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 upstream backserver { server 127.0.0.1:8081 weight=1; server 127.0.0.1:8082 weight=2; } 3、IP绑定每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream backserver { ip_hash; server 127.0.0.1:8081; server 127.0.0.1:8082; } 4、宕机轮询规则配置upstream backserver { #设定负载均衡的服务器列表 server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 80; server_name 80.itman.com; location / { proxy_pass http://backserver; #请求转向backserver定义的服务器列表 index index.html index.htm; #定义首页索引文件的名称 proxy_connect_timeout 1; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 1; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 1; #连接成功后,后端服务器响应时间(代理接收超时) } } Nginx解决网站跨域问题若http://127.0.0.1:8080工程A中页面直接访问http://127.0.0.1:8081/index8081接口,会产生跨域问题。 A页面代码: $(function () { $.get("http://127.0.0.1:8081/index8081", {}, function (result) { $("#show").html(result); }) }) nginx.conf: server { listen 80; server_name localhost; location /api { rewrite ^/api/(.*)$ /$1 break; proxy_pass http://127.0.0.1:8081; index index.html index.htm; } location / { proxy_pass http://127.0.0.1:8080; index index.html index.htm; } } A页面调整: $(function () { $.get("/api/index8081", {}, function (result) { $("#show").html(result); }) }) 浏览器跨域的解决方式有很多种: Nginx配置防盗链
Nginx配置DDOS
来源:http://www./content-3-168601.html |
|