Nginx简介

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。由于Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括新浪、网易、腾讯、搜狐等企业的一些门户网站等,在3w以上的高并发环境下,ngnix处理能力相当于apache的10倍。

Nginx负载均衡

分摊到多个操作单元上进行执行,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优。

一、下载ngxin

下载地址 http://nginx.org/download/nginx-1.2.5.zip

解压后 双击nginx.exe 启动

查看进程出现 nginx.exe

浏览器输入http://localhost/

出现如下字样:

Welcome to nginx!

nginx启动成功

配置完环境变量后,就可以使用以下命令来启动和关闭Nginx服务。

1)start nginx 启动命令

2)nginx -s stop 快速停止nginx,并不保存相关信息.

3)nginx -s quit 完整有序的停止nginx,并保存相关信息。

4)nginx -t 测试

二、在三台服务器上分别建一个网站:

Server1 : 192.168.10.152:8887

Server2: 192.168.10.63:8887

Server3 : 192.168.10.134:8887

每个网站下放一个Index.html文件,内容为相应ip+端口

三、修改配置文件conf

找到 \conf\nginx.conf

打卡nginx.conf

配置如下

#user  nobody;
#nginx进程数,建议设置为等于CPU总核心数
worker_processes 1; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; #工作模式与连接数上限
events {
worker_connections 8192;
} rtmp {
server {
listen 1935;
chunk_size 4000; application myapp {
live on;
} application zbcs {
live on;
record off;
} application vod {
play video;
} application hls {
live on;
hls on;
hls_path temp/hls;
hls_fragment 8s;
}
}
} #设定http服务器,利用他的反向代理功能提供负载均衡支持
http {
#设定mime类型
include mime.types;
default_type application/octet-stream; #设定日志格式
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main;
log_format main '$remote_addr - $remote_user [$time_local]'
'"$request" $status $bytes_sent'
'"$http_referer" "$http_user_agent" "$http_x_forwarded_for"'
'"$gzip_ratio"';
log_format download '$remote_addr - $remote_user [$time_local]'
'"$request" $status $bytes_sent'
'"$http_referer" "$http_user_agent"'
'"$http_range" "$sent_http_content_range"'; #设定请求缓冲
client_header_buffer_size 1k;
large_client_header_buffers 4 4k; #设定access log
access_log logs/access.log main;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m; sendfile on;
tcp_nopush on;
tcp_nodelay on; #keepalive_timeout 0;
keepalive_timeout 65; #开启gzip模块
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css application/xml; output_buffers 1 32k;
postpone_output 1460; server_names_hash_bucket_size 128;
client_max_body_size 8m; fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_vary on; #服务器集群名称 localhost
upstream localhost{
#根据ip计算将请求分配各那个后端tomcat,可以解决session问题,保持一个客户端多次请求分发到一台后端服务器上
ip_hash;
#weight权重,max_fails请求失败的次数 fail_timeout请求失败后暂停请求此服务器的时间
server 192.168.10.63:8887 weight=3 max_fails=1 fail_timeout=600s;
server 192.168.10.134:8887 weight=3 max_fails=1 fail_timeout=600s;
server 192.168.10.152:8887 weight=3 max_fails=1 fail_timeout=600s;
} server {
#监听端口
listen 8090;
server_name localhost; #charset koi8-r;
charset 'utf-8'; #access_log logs/host.access.log main; #对 "/" 启用负载均衡
location / {

        # 项目根目录
        root html;
        # 默认首页
        index index.html index.htm;

            #反向代理
proxy_pass http://localhost;
#设置主机头和客户端真实地址,以便服务器获取客户端真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#允许客户端请求的最大单个文件字节数
client_max_body_size 10m;
#缓冲区代理缓冲用户端请求的最大字节数,可以理解为先保存到本地再传给用户
client_body_buffer_size 128k;
#跟后端服务器连接超时时间 发起握手等候响应超时时间
proxy_connect_timeout 2s;
#连接成功后 等待后端服务器响应时间 其实已进入后端的排队之中等候处理
proxy_read_timeout 90;
#后端服务器数据回传时间 就是在规定时间内后端服务器必须传完所有数据
proxy_send_timeout 90;
#代理请求缓存区 这个缓存区间会保存用户的头信息一共Nginx进行规则处理 一般只要能保存下头信息即可
proxy_buffer_size 4k;
#同上 告诉Nginx保存单个用的几个Buffer最大用多大空间
proxy_buffers 4 32k;
#如果系统很忙的时候可以申请国内各大的proxy_buffers 官方推荐 *2
proxy_busy_buffers_size 64k;
#proxy 缓存临时文件的大小
proxy_temp_file_write_size 64k;
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} # another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost; # ssl_certificate cert.pem;
# ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on; # location / {
# root html;
# index index.html index.htm;
# }
#} }

四、重启nginx

nginx -s quit 停止nginx

start nginx  启动nginx

五、发起请求

打开浏览器,访问http://localhost:8090

快速刷新页面,轮询出现三个服务器ip+端口

如果停止其中一台服务,再次快速刷新页面,不会出现停止服务的ip+端口

成功!

反向代理

其实上面已经出现了反向代理的配置及备注信息

如要访问http://192.168.10.134:8090/test/Index.html

第一种

编辑\conf\nginx.conf 里的server 段

location /test/ {
proxy_pass http://192.168.10.134:8887;
}

当访问http://localhost:8090/test/ 时nginx 会代理访问到 http://192.168.10.134:8887/test/Index.html

第二种

location /test/ {
proxy_pass http://192.168.10.134:8887/;
}

当访问http://localhost:8090/test/ 时nginx 会代理就会访问到 http://192.168.10.134:8887/Index.html

第三种

location /test/ {
proxy_pass http://192.168.10.134:8887/file/;
}

当访问http://localhost:8090/test/ 时nginx 会代理就会访问到 http://192.168.10.134:8887/file/Index.html

第四种

location /test/ {
proxy_pass http://192.168.10.134:8887/file;
}

当访问http://localhost:8090/test/ 时nginx 会代理就会访问到 http://192.168.10.134:8887/fileIndex.html

nginx 负载均衡及反向代理的更多相关文章

  1. Nginx 负载均衡和反向代理实践

    nginx 以哪个配置文件启动 Nginx 负载均衡和反向代理实践 环境介绍 192.168.1.50    在这台主机上配置Nginx 的反向代理,负载均衡,和web1,web1使用的81号端口 1 ...

  2. 【架构师之路】Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

    本篇摘自<亿级流量网站架构核心技术>第二章 Nginx负载均衡与反向代理 部分内容. 当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用 ...

  3. CentOS中实现Nginx负载均衡和反向代理

    一.安装必要软件 负载均衡服务器:IP设置为192.168.1.10 Web服务器1:安装Apache或者Nginx,IP设置为192.168.1.11: Web服务器2:安装Apache或者Ngin ...

  4. nginx负载均衡和反向代理有什么区别

    近在研究nginx的负载均衡和反向代理,先看下这两个简单的配置吧! 负载均衡 worker_processes 1; events { worker_connections 1024; } http{ ...

  5. Nginx负载均衡和反向代理设置

    Nginx负载均衡: 格式: upstream 别名 {    #别名一般要有意义,能看出是做什么的 server ip:端口;    #要实现负载的服务器的ip.端口号}  例: upstream ...

  6. Nginx负载均衡和反向代理的配置和优化

    负载均衡 负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位, 反向代理 是指以代理服务器来接受internet上的请求,然后将请求转给内部的服务器 常见的负载均衡 1. ...

  7. CentOS中nginx负载均衡和反向代理的搭建

    1: 修改centos命令行启动(减少内存占用): vim /etc/inittab :initdefault: --> 修改5为3 若要界面启动使用 startx 2:安装jdk )解压:jd ...

  8. Nginx负载均衡与反向代理—《亿级流量网站架构核心技术》

    当我们的应用单实例不能支撑用户请求时,此时就需要扩容,从一台服务器扩容到两台.几十台.几百台.然而,用户访问时是通过如http://www.XX.com的方式访问,在请求时,浏览器首先会查询DNS服务 ...

  9. Nginx负载均衡与反向代理的配置实例

    user www www; worker_processes 10; error_log /data1/logs/nginx_error.log crit; pid /usr/local/webser ...

随机推荐

  1. Jieba分词包(一)——解析主函数cut

    1. 解析主函数cut Jieba分词包的主函数在jieba文件夹下的__init__.py中,在这个py文件中有个cut的函数,这个就是控制着整个jieba分词包的主函数.    cut函数的定义如 ...

  2. laravel在终端中查看日志的方法

    php artisan tail  --path=/Users/henryj/workspace_php/makerlab/app/storage/logs/laravel-2015-04-22.lo ...

  3. Element-ui学习笔记3--Form表单(二)

    Input输入框 Input 为受控组件,它总会显示 Vue 绑定值. 通常情况下,应当处理 input 事件,并更新组件的绑定值(或使用v-model).否则,输入框内显示的值将不会改变. 不支持  ...

  4. .net Framework 源代码 · ScrollViewer

    本文是分析 .net Framework 源代码的系列,主要告诉大家微软做 ScrollViewer 的思路,分析很简单. 看完本文,可以学会如何写一个 ScrollViewer ,如何定义一个 IS ...

  5. java基本数据类型转换之向上转型和向下转换

    向上转换: 整型,字符型,浮点型的数据在混合运算中相互转换,转换时遵循以下原则: 容量小的类型可自动转换为容量大的数据类型: byte,short,char → int → long → float ...

  6. H3C 配置基本ACL

  7. 添加gitignore文件后使其生效

    https://www.cnblogs.com/AliliWl/p/7880243.html 遇到的问题 我们发现在添加.gitignore文件后,当我们想push文件的时候,我们声明的忽略文件还是会 ...

  8. Less 语法快速入门

    Less 语法快速入门 Less 是一门 CSS 预处理语言其可以运行在 Node 或浏览器端. 它将传统的 css 样式结构单一的排版顺序进行了优化,让我们可以通过层级嵌套的方式将 css 类名与H ...

  9. Python3使用过程中需要注意的点

    命名规则 变量 变量名只能是数字.字母或下划线的任意组合 变量名的第一个字符不能是数字 不能使用关键字作为变量名 变量的定义要具有可描述性 变量名不宜过长.不宜使用中文.拼音 常量(常用在配置文件中) ...

  10. H3C在设备上使用TFTP服务