Nginx反向代理和负载均衡部署指南
来源:互联网 发布:买淘宝客链接安全吗 编辑:程序博客网 时间:2024/06/05 20:13
1. 安装
1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包;
2) 解压后复制到部署目录。
2. 启动和停止Nginx
Nginx目前只支持命令行操作,操作前先进入Dos命令环境,并进入Nginx部署目录。
1) 启动Nginx:start nginx
2) 停止Nginx:nginx -s stop
3) 修改配置后重启:nginx -s reload
这三个命令可分别做成bat文件,放在部署目录下,方便后续操作。
start nginx.bat文件内容:start nginx
stop nginx.bat文件内容:nginx -s stop
reload nginx.bat文件内容:nginx -s reload
3. 反向代理配置
修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)内容,可调整相关配置。
反向代理配置示例:
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实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;
#禁用缓存
proxy_buffering off;
#设置反向代理的地址
proxy_pass http://192.168.1.1;
}
代理地址根据实际情况修改。
4. 负载均衡配置
nginx 的 upstream默认是以轮询的方式实现负载均衡,这种方式中,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
另外一种方式是ip_hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
负载均衡配置示例:
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name trffweb;
location / {
#反向代理的地址
proxy_pass http://backend;
}
}
Upstream命名和服务器地址根据实际情况修改。
5. 完整配置示例
nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name 2;
location / {
#设置主机头和客户端真实地址,以便服务器获取客户端真实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;
#禁用缓存
proxy_buffering off;
#反向代理的地址
proxy_pass http://backend;
}
}
}
6.示例
环境:
nginx1:192.168.68.41
tomcat1:192.168.68.43
tomcat2:192.168.68.45
nginx安装网上很多教程,我是用yum安装的。
配置nginx:
vim /etc/nginx/conf.d/default.conf
内容:
#负责压缩数据流gzip on; gzip_min_length 1000; gzip_types text/plain text/css application/x-javascript;#设定负载均衡的服务器列表#weigth参数表示权值,权值越高被分配到的几率越大upstream hello{ server 192.168.68.43:8080 weight=1; server 192.168.68.45:8080 weight=1; } server { #侦听的80端口 listen 80; server_name localhost; #设定查看Nginx状态的地址 location /nginxstatus{ stub_status on; access_log on; auth_basic "nginxstatus"; auth_basic_user_file htpasswd; } #匹配以jsp结尾的,tomcat的网页文件是以jsp结尾 location / { index index.jsp; proxy_pass http://hello; #在这里设置一个代理,和upstream的名字一样 #以下是一些反向代理的配置可删除 proxy_redirect off; #后端的Web服务器可以通过X-Forwarded-For获取用户真实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 300; #nginx跟后端服务器连接超时时间(代理连接超时) proxy_send_timeout 300; #后端服务器数据回传时间(代理发送超时) proxy_read_timeout 300; #连接成功后,后端服务器响应时间(代理接收超时) proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小 proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置 proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2) proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传 }}
启动:
nginx
退出:
nginx -s quit
启动nginx后,访问http://192.168.68.41/test/
会被导航到http://192.168.68.43:8080/test/ 和http://192.168.68.45:8080/test/
从而实现了负载均衡和避免单点故障。
////////////////////////////////
////////Sixi. Let it be.../////
//////////////////////////////
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- Nginx反向代理和负载均衡部署指南
- 弗洛伊德算法解析
- 采集--封装模拟登陆
- Mac下极光推送问题 :Can not connect to JPush Server. Please ensure your internet connect
- linux学习笔记之创建大型文件
- 最简单的回调函数例子
- Nginx反向代理和负载均衡部署指南
- svn使用教程
- 万能的数据传输格式——XML/json
- 基于SSLStrip的HTTPS会话劫持
- webview中JavascriptInterface接口在release包中无法使用的问题
- NPAPI插件开发详细记录:安装包的制作
- codeforces C. Coloring Trees
- Docker批量删除REPOSITORY、TAG为none的镜像
- HDFS分布式(HA)