nginx1.10.2集群安装
2016-11-02 03:11
232 查看
经典
http://zyan.cc/nginx_php_v6/下载
wget http://nginx.org/download/nginx-1.10.2.tar.gz准备
yum install -y pcre-develyum install gcc gcc-c++ ncurses-devel perl
yum -y install make gcc gcc-c++ncurses-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl--devel (可选)
移动
mv nginx-1.10.2.tar.gz ~解压
tar zxf nginx-1.10.2.tar.gz配置
cd ~/nginx-1.10.2/./configure --user=root --group=root --prefix=/usr/local/nginx-1.10.2
./configure --user=root --group=root--prefix=/usr/local/nginx-1.10.2 \--with-http_stub_status_module--with-http_ssl_module
./configure --user=root --group=root--prefix=/usr/local/nginx-1.10.2
--conf-path=/usr/local/nginx-1.10.2/nginx.conf\
--openssl-path=/usr/local/openssl-1.0.1c \
--with-http_ssl_module \
--with-pcre=/usr/local/pcre-8.21 \
--with-http-stub-status-module
编译安装
make && make install测试
cd /usr/local/nginx-1.10.2/nginx/sbin/./nginx -t
启动
./nginx/nginx -s reload
停止
./nginx -s stop验证
netstat -ntlpuhttp://ip
负载均衡配置(基于权重)
修改conf/nginx.confhttp {
upstream cancer {
server cancer01:8080 weight=5;
server cancer02:8080 weight=5;
}
location/ {
proxy_pass http://cancer;
}
}
负载均衡,完整如下:
user www www;
worker_processes 8;
pid /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 102400;
events{
use epoll;
worker_connections102400;
}
http{
include mime.types;
default_type application/octet-stream;
fastcgi_intercept_errors on;
charset utf-8;
server_names_hash_bucket_size 128;
client_header_buffer_size 4k;
large_client_header_buffers 4 32k;
client_max_body_size 300m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 464k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plainapplication/x-javascript text/css application/xml;
gzip_vary on;
###2012-12-19 change nginx logs
log_format main '$http_x_forwarded_for -$remote_user [$time_local] "$request" '
'$status $body_bytes_sent"$http_referer" '
'"$http_user_agent" $request_time $remote_addr';
upstream web_app {
server127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
server127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
}
####chinaapp.sinaapp.com
server {
listen 80;
server_name chinaapp.sinaapp.com;
index index.jsp index.html index.htm;
#发布目录/data/www
root /data/www;
location / {
proxy_next_upstream http_502 http_504error timeout invalid_header;
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_pass http://web_app;
expires 3d;
}
}
}
负载均衡(种类)
nginx 的 upstream目前支持 4 种方式的分配1)、轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2)、weight,指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
2)、ip_hash,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
3)、fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。
4)、url_hash(第三方)
#定义负载均衡设备的 Ip及设备状态
upstream myServer {
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}
server{
proxy_pass http://myServer;
}
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
Nginx还支持多组的负载均衡,可以配置多个upstream 来服务于不同的Server.
会话共享
http://blog.csdn.net/xluren/article/details/16951247http://blog.csdn.net/ning109314/article/details/41448143
http://yunan246.blog.163.com/blog/static/379555592014023230938/(好好好好好)
基于会话共享配置nginx+tomcat+redis
准备,jar包apache tomcat 7.0.55
nginx 1.7.2
redis 2.8.9
tomcat-redis-session-manager-1.2-tomcat-7.jar
jedis-2.2.0.jar
commons-pool-1.6.jar
tcl8.5.11-src.tar.gz
修改tomct,/conf/context.xml
<ValveclassName="com.radiadesign.catalina.session.RedisSessionHandlerValve"/>
<ManagerclassName="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60"
/>
安装redis
配置nginx
upstream backend{
server192.168.1.246:8080;
server192.168.1.246:9080;
}
server{
proxy_redirectoff;
proxy_set_headerHost $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://backend;
}
测试页面:
<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>shared session</title>
</head>
<body>
<br>sessionid=<%=session.getId()%>
<br>tomcat(1、2、3)
</body>
</html>
反向代理
实例:upstreamtornado {
server 127.0.0.1:8888;
}
server {
listen 80;
root /root/nmapp2_venv;
index index.py index.html;
server_name server;
location / {
#if (!-e $request_filename) {
# rewrite ^/(.*)$ /index.py/$1 last;
#}
}
location ~ /index\.py {
proxy_pass_header Server;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP$remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_pass http://tornado;
}
}
Nginx 反向代理的指令不需要新增额外的模块,默认自带 proxy_pass 指令,只需要修改配置文件就可以实现反向代理。
再举一个例子吧。比如要配置后端跑 apache 服务的 ip 和端口,也就是说,我们的目标是实现通过 http://ip:port 能访问到你的网站。
只要新建一个 vhost.conf,加入如下内容(记得修改 ip 和域名为你的 ip 和域名)。修改nginx.conf,添加 include quancha.conf 到http{}段, reload nginx就可以了。
反向代理模板:
## Basic reverse proxy server ##
upstream apachephp {
server ip:8080; #Apache
}
## Start www.nowamagic.net ##
server {
listen 80;
server_name www.nowamagic.net;
access_log logs/quancha.access.log main;
error_log logs/quancha.error.log;
root html;
index index.html index.htmindex.php;
## send request back to apache ##
location / {
proxy_pass http://apachephp;
#Proxy Settings
proxy_redirect off;
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_next_upstream error timeout invalid_header http_500 http_502http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
}
相关文章推荐
- nginx安装配置+集群tomcat:Centos和windows环境
- nginx笔记, 安装,配置,集群
- CentOS6.5安装Nginx1.10.2
- nginx-1.10.2 windows下安装与g配置
- CentOS7.2下源码安装Nginx 1.10.2
- MAC OS X 10.9 下 Nginx的安装笔记(为后续搞Nginx+Redis+Tomcat集群做准备)
- 【最新版lnmp编译安装】编译安装nginx1.10.2最新版、php7.0.12最新版、mysql5.7.16最新版
- 【最新版lnmp编译安装】编译安装nginx1.10.2最新版、php7.0.12最新版、mysql5.7.16最新版
- CentOS6.8编译安装Nginx1.10.2+MySQL5.7.16+PHP7.0.12
- 在ubuntu16编译安装nginx-1.10.2(full)完全自带组件
- nginx配置二级域名访问集群tomcat和nginx windows版安装 启动
- 【Nginx入门系列】第五章 tomcat在linux下的安装和集群预部署
- Linux下安装与配置基于nginx的tomcat负载均衡和集群
- windows下php7.0.13 和nginx1.10.2安装配置
- centOS6.5下yum安装nginx1.10.2
- ubuntu 12.04下编译安装nginx-1.9.3之后 tomcat集群
- 【Linux运维-集群技术进阶】Nginx的安装配置
- Nginx在window行安装集群
- CentOS 7.2安装Nginx 1.10.2的详细教程
- CentOS6.5下Nginx1.10.2的安装过程