目录

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. Guice之IOC教程

    Guice 在上一篇博客中, 我们讲解了Spring中的IOC示例与实现, 本文着重介绍Guice注入以及与Spring中的差异. Guice是Google开发的, 一个轻量级的依赖注入框架, 跟Sp ...

  2. linux下yum安装redis以及使用

    1.yum install redis      --查看是否有redis   yum 源 2.yum install epel-release    --下载fedora的epel仓库 3. yum ...

  3. C# DropDownList 绑定枚举类

    第一种 DropDownList_Franchiser_Type.DataSource = ListTypeForEnum(); DropDownList_Franchiser_Type.DataVa ...

  4. Qwt安装(转)

    ======= 安装 ======= Qwt使用qmake编译所有的组件和示例. qmake是Qt发布中的一部分. qmake读取工程文件,工程文件包含了如何工程选项和如何编译特定工程的规则.一个工程 ...

  5. 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的

    在阿里云买ECS的时候选择自己习惯的镜像系统,我一般都是使用Linux Ubuntu,所以,以下的配置都是在Ubuntu 14.04稳定支持版的环境中搭建Linux+Nginx+Mysql+PHP环境 ...

  6. 【swift-总结】函数

    swift的函数在swift2中的使用改变了不少 /** *param: personName 參数 *returns: String为返回值 */ func sayHello(personName: ...

  7. HPUX 11.31 MC-SG SGeRAC配置

    HPUX 11.31 MC-SG SGeRAC配置 环境: 系统版本号 hp-unix 11.3v2 1503 serviceguard extension版本号 T1907 实施 1. 磁盘空间划分 ...

  8. Android查缺补漏--BroadcastReceiver的类型与使用

    Broadcast 是一种被用于应用内和应用之间传递信息的机制.一个广播可以对应多个接受者.一个完整的广播机制,需要具有以下三个要素: 发送广播的Broadcast 接受广播的BroadcastRec ...

  9. 三、Spring Boot 多数据源配置

    下面一个Java类是已经写好的根据配置文件动态创建多dataSource的代码,其原理也很简单,就是读取配置文件,根据配置文件中配置的数据源数量,动态创建dataSource并注册到Spring中. ...

  10. Not++规范格式(格式化)

    Notepad++功能比Windows中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码.Notepad++ 有语法高亮度显示和语法折叠功能,并且支 ...