目录

1       大概思路... 1

2       了解Nginx及文档资源... 1

3       Nginx命令模块及进程结构... 2

4       解读Nginx配置... 3

5       让“百度”成为自己的“搬运工”. 5

6       服务器负载均衡集群... 7

7       域名解析实现负载均衡... 8

8       总结... 10

1       大概思路

l  了解Nginx及文档资源

l  Nginx命令模块及进程结构

l  解读Nginx配置

l  让“百度”成为自己的“搬运工”

l  服务器负载均衡集群

l  域名解析实现负载均衡

l  总结

2       了解Nginx及文档资源

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

中文文档官网:

http://www.nginx.cn/doc/

中文文档官网上,拥有了一些示例:

安装

nginx在windows上安装

nginx在freebsd上安装

nginx在ubuntu上安装

nginx在fedora上安装

nginx在centos上安装

nginx php-fpm安装配置

配置示例和方法

完整示例

完整示例(来自 Nginx 站点)

虚拟主机

负载均衡示例

防盗链

X-Sendfile (=> X-Accel-Redirect) in Nginx

Disable the errorlog entries caused by the HW-Loadbalancer

3       Nginx命令模块及进程结构

基本命令

命令

描述

nginx –s stop

立即停止守护进程(使用TERM信号)

nginx –s quit

温和地停止守护进程(使用QUIT信号)

nginx –s reopen

重新打开日志文件

nginx –s reload

重新载入配置文件

nginx -t

测试配置文件

kill/killall nginx

配置服务无法停止,可用该命令终止该进程

高级的配置,一般有5个文件

标准名称

描述

nginx.conf

应用程序的基本配置文件

mime.types

一个文件扩展列表文件,与MIME类型关联

fastcgi.conf

与FastCGI相关的配置文件

proxy.conf

与Proxy相关的配置文件

sites.conf

配置Nginx提供的网站,最好每个域建文件

基本模块

名称

描述

核心模块(Core module)

基本特征和指令,例如进程管理和安全

事件模块(Events module)

让你在Nginx内部机制配置网络使用能力

配置模块(Configuration module)

提供包含机制

启动Nginx,一个独一无二的进程存在于内存——master进程,如果该服务在系统启动时有init脚本启动,它会使用当前的用户和用户组来运行——通常为root/root,master进程本身不处理任何客户端的请求,它是用来产生进程——worker进程,这些worker进程在配置文件中指定的用户和用户组来运行,定义大量worker进程以及每个worker进程的最大连接数。

硬件选择

低流量的配置

标准配置

高流量配置

CPU:双核

RAM:2GB

请求:~1/s

CPU:四核

RAM:4GB

请求:~50/s

CPU:八核

RAM:12GB

请求:~1000/s

推荐值

worker_processes 2;

worker_rlimit_nofile 1024;

worker_priority -5;

worker_cpu_affinity 01 10;

events{

multi_accept on;

worker_connections 128;

}

worker_processes 4;

worker_rlimit_nofile 8192;

worker_priority 0;

worker_cpu_affinity 0001 0010 0100 1000;

events{

multi_accept off;

worker_connections 1024;

}

worker_processes 8;

worker_priority 0;

events{

multi_accept off;

worker_connections 8192;

}

4       解读Nginx配置

核心模块(Core module)指令

指令和使用环境

描述

master_process

语法:on或off

若为on,Nginx将开启多个进程,一个主进程(即master进程)和worker进程;若为off,Nginx会以独一无二的进程来运行。该指令仅被用于测试。

worker_processes

语法:数字

定义worker进程的数量,Nginx可将请求分到多个worker进程

error_log

语法:error_log /file/path level

能够提供不同的错误日志级别:应用程序、HTPP服务、虚拟主机和虚拟主机目录

pid

语法:文件路径

用于存放Nginx守护进程的pid文件路径。默认值为编译时配置的路径

事件模块(Event Module)指令

指令和使用环境

描述

worker_connections

语法:数字

定义一个woker进程能够同时连接的数量

multi_accept

语法:on或off

定义Nginx是否立刻从所有监听队列进入的连接

配置模块(Configuration module)指令(涉及的主要是HTTP核心模块,下面再补充)

Nginx.conf解读:

#user  nobody;
#定义worker进程的数量,Nginx可将请求分到多个worker进程
worker_processes 1; #能够提供不同的错误日志级别:应用程序、HTPP服务、虚拟主机和虚拟主机目录
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #用于存放Nginx守护进程的pid文件路径。默认值为编译时配置的路径
#pid logs/nginx.pid; #定义一个woker进程能够同时连接的数量
events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65; server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

Nginx以上面配置为基础,提供Web服务

l  通过80监听tcp套接字

l  访问地址http://localhost/

l  主页为index.html

在windows的cmd下,进入nginx目录,输入:

D:\DTLDownLoads\nginx-1.10.2>start nginx

D:\DTLDownLoads\nginx-1.10.2>nginx -t
nginx: the configuration file D:\DTLDownLoads\nginx-1.10.2/conf/nginx.conf syntax is ok
nginx: configuration file D:\DTLDownLoads\nginx-1.10.2/conf/nginx.conf test is successful D:\DTLDownLoads\nginx-1.10.2>

运行效果如下:

5       让“百度”成为自己的“搬运工”

如何使用Nginx代理,使“百度”成为搬运工,主要设置server_name和proxy_pass属性。这里涉及了配置模块,主要是HTTP核心模块。

HTTP核心模块包含HTTP服务器所有基本的区段(block)、指令和变量。主要有http,server和location这三个主要的区段结构。

l  http 该区段嵌入配置文件的根部。

l  server 这个区段允许你声明一个站点,能够设定网站(通过主机名)。这样通过Nginx实现公认的服务器。该区段只能用在http区段。

l  location 定义一组设置,应用于网站的一个特定位置。该区段能够用于server区段,也能嵌套在其它location中。

指令和使用环境

描述

server_name

语法:server_name hostname1[hostname2…]

在server区段定义一个或者多个主机名

sendfile

语法:on或off

Nginx将使用sendfile内核来调用处理文件传递。

root

语法:目录路径

定义文档根目录

keepalive_timeout

语法:keepalive_timeout time1[time2...]

keep-alive能够使用客户端服务器的连接在一定时间内持续有效

Nginx.conf配置如下:

worker_processes  1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost zhyongfeng;
location / {
proxy_pass https://www.baidu.com;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

运行效果:

6       服务器负载均衡集群

不同主机端口,通过localhost:80端口进行负载均衡集群访问,使用localhost对WEB API配置如下:

worker_processes  1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65; upstream zhyongfeng.com {
#可进行down测试;
server 10.92.202.56:5600;
server 10.92.202.57:5700;
server 10.92.202.58:5800;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://zhyongfeng.com;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

运行CMD:

D:\DTLDownLoads\nginx-1.10.2>start nginx

D:\DTLDownLoads\nginx-1.10.2>nginx -s reload

访问:http://localhost/,运行结果:

7       域名解析实现负载均衡

不同主机端口,通过自主义域名zhyongfeng.com:80端口进行负载均衡集群访问,则访问C:\Windows\System32\drivers\etc\hosts,添加下列“本机IP 自定义的域名”:

10.93.85.66    zhyongfeng.com

使用zhyongfeng.com对WEB API配置如下:

worker_processes  1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65; upstream zhyongfeng.com {
server 10.92.202.56:5600;
server 10.92.202.57:5700;
server 10.92.202.58:5800;
}
server {
listen 80;
server_name zhyongfeng.com;
location / {
proxy_pass http://zhyongfeng.com;
}
}
}

运行CMD,重新reload加载配置,停止后重新启动:

D:\DTLDownLoads\nginx-1.10.2>nginx -s reload

D:\DTLDownLoads\nginx-1.10.2>nginx -s stop

D:\DTLDownLoads\nginx-1.10.2>start nginx

访问:http://zhyongfeng.com/,http://localhost/,http://10.93.85.66/的运行结果:

8       总结

Nginx可以使用Rewrite模块建立高级重写规则,可以和PHP、Python结合,也可以替换Apache,或者作用于现有HTTP服务器前端,能够轻松建立虚拟主机配置,既能反向代理又可以是电子邮件(IMAP/POP3)代理服务器,功能强大,可以深入学习。

Windows的Nginx资源下载:

http://download.csdn.net/download/ruby_matlab/10117702

PDF下载:

Nginx集群及代理的应用.pdf

Nginx集群及代理的应用的更多相关文章

  1. 基于Windows 配置 nginx 集群 & 反向代理

    1.下载 nginx 下载页面 : http://nginx.org/en/download.html 具体文件: http://nginx.org/download/nginx-1.7.0.zip ...

  2. Nginx 集群 反向代理多个服务器

    准备多个服务器,使用 nginx 先做好代理(我这里只有一台服务器,就拷贝两个 tomcat 了,端口分别设置为 8081 和 8082) 1,复制 tomcat cp -r apache-tomca ...

  3. 扎实基础之从零开始-Nginx集群分布式.NET应用

    1       扎实基础之快速学习Nginx Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少 ...

  4. Nginx集群之WCF分布式局域网应用

    目录 1       大概思路... 1 2       Nginx集群WCF分布式局域网结构图... 1 3       关于WCF的BasicHttpBinding. 1 4       编写WC ...

  5. Nginx集群之WCF分布式身份验证(支持Soap)

    目录 1       大概思路... 1 2       Nginx集群之WCF分布式身份验证... 1 3       BasicHttpBinding.ws2007HttpBinding. 2 4 ...

  6. nginx集群配置

    一.nginx集群目标 以nginx作为代理服务器,分别在两台部署web站点的机器上面轮询访问. 3台机器IP地址分别为: 1)192.168.189.133   (nginx代理服务器) 2)192 ...

  7. nginx 集群介绍

    nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...

  8. NetCore在Centos7上部署和Nginx集群部署访问

    NetCore在Linux上部署 工具:WMWare虚拟机,Wmware12,CentOS7ISO镜像,VS2017 1.安装虚拟机,过程略,网上一搜一大把 2.用VS2017建一个NetCore的W ...

  9. Nginx集群(负载均衡)

    一.集群介绍 1.传统web访问模型 (1)传统web访问模型完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 (2)传统模型缺点 单点故障 ...

随机推荐

  1. ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  2. 运行期以索引获取tuple元素-C++17

    //运行期以索引获取tuple元素-C++17 //需支持C++17及以上标准的编译器,VS2017 15.5.x.CodeBlocks 16.01 gcc 7.2 //参见:http://purec ...

  3. onunload事件和onbeforeunload事件

    记录知识点背景:在做一个h5项目时,在统计事件时有这样一个需求, 希望能统计到用户是从第几页离开的,用到了这个知识点.在此记录. window.onunload 1.定义和用法 onunload事件在 ...

  4. JAVA设计模式之:命令模式

    *通常情况下:行为请求者与实现者通常呈现一种高度耦合状态.有时要对行为进行变更处理处理.高度耦合方式就显得不合适. * 将行为请求者与行为实现者解耦,将一组行为抽象为对象.实现二者之间的松耦合. 这就 ...

  5. Oracle查看对象空间使用情况show_space

    tom大神写了一个用于查看Oracle数据库对象空间使用情况. 以下演示一下怎样使用: –工具源代码 CREATE OR REPLACE PROCEDURE show_space(p_segname ...

  6. javascript跳跃式前进(3) - 跳入JSON

    前言 JSON崛起不是意外,是顺应时代;相当简洁小巧的书写模式及阅读方式; 基础 看这篇文章: JSON知识点汇总_W3SCHOOL 初步进阶 早期的解析仅仅实用eval() ,可是这货太easy给注 ...

  7. <转> Libvirt学习总结

    感谢朋友支持本博客.欢迎共同探讨交流.因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载,请保留作者信息. 博客地址:http://blog.csdn.net/gaoxingnengjisua ...

  8. 浅谈MySQL中的查询优化

    mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等.这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整 ...

  9. 二.java下使用RabbitMQ实现hello world

    上一篇文章介绍了windows环境下的安装和配置rabbitMQ,具体戳这边,一.windows环境下rabbit的的安装和配置. 现在我们可以着手编写hello world程序了,一窥RabbitM ...

  10. 自学Zabbix1.1-简介

    1. 初识Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决 方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利.        ...