nginx 动静分离
2018-03-10 01:00
134 查看
网站架构图
环境说明:
nginx master:192.168.232.18/24 (Centos7)
nginx backup:192.168.232.19/24(Centos7)
webserver01(动态):192.168.232.30/24(Centos7)
webserver02(动态):192.168.232.31/24(Centos7)
webserver03(静态):192.168.232.6/24(Centos6.7)
webserver04(静态):192.168.232.254/24(Centos6.7)
如上图,nginx将访问php等动态页面的请求交给动态页面服务器;将访问html等静态页面的请求交给静态页面服务器。
安装步骤
(1) 安装Keepalived
a) master配置
安装依赖:
# yum installgcc gcc-c++ autoconf automake -y
# yum install zlibzlib-devel openssl openssl-devel -y
# tar xvf keepalived-1.2.20.tar.gz -C /usr/local/src ;cd /usr/local/src/keepalived-1.2.20
# ./configure--prefix=/usr/local/keepalived
#make &&make install
#ln -s/usr/local/keepalived/sbin/keepalived /sbin/
# ln -s/usr/local/keepalived/bin/genhash /bin/
# ln -s /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/keepalived
# mkdir /etc/keepalived/
# cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# servicekeepalived start
# chkconfigkeepalived on
#vim /etc/keepalived/keepalived.conf
vrrp_instanceVI_1 { #vrrp实例定义
stateMASTER #实例初始化状态,还可以是master!
nopreempt #不抢占,用于state 状态中,而且优先级要高于第二个backup
interface eth0 #实例绑定的网卡
#track_interface{ #设定额外监控的网卡,以下任意网卡故障,状态fault
#eth0
#eth1
#}
virtual_router_id51 #虚拟路由id(0-255)
priority100 #优先级,高优先级的将竞选为MASTER
advert_int1 #检查间隔,默认1s
authentication {
auth_typePASS #认证方式,pass
auth_passVI_1 #认证密码
}
virtual_ipaddress{ #虚拟ip地址(vip 可以为多个)
192.168.232.20/24eth0 cope global #虚拟ip地址绑定在 eth0 网卡
}
}
b) backup配置
keepalived安装方式同master
#vim /etc/keepalived/keepalived.conf
vrrp_instanceVI_1
state BACKUP
#nopreempt
interface eth0
#track_interface{
#eth0
#eth1
#}
virtual_router_id51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass VI_1
}
virtual_ipaddress{
192.168.232.20/24eth0 cope global
}
}
(2)安装nginx
解决pcre依赖
# tar xvf pcre-8.37.tar.bz2-C /usr/local/src/
编译安装nginx
[[email protected] ~] #tar xvf nginx-1.9.4.tar.gz -C /usr/local/src/ ; cd/usr/local/src/nginx-1.9.4
[[email protected] ~] #./configure --prefix=/usr/local/nginx--with-http_dav_module --with-http_stub_status_module --with-http_addition_module--with-http_sub_module --with-http_flv_module --with-http_mp4_module--with-pcre=/usr/local/src/pcre-8.37
[[email protected] ~] # make ; make install ; cd
[[email protected] ~] # useradd -M -u 8001 -s /sbin/nologin nginx
[[email protected] ~] # vim /usr/local/nginx/conf/nginx.conf
[[email protected] ~] #/usr/local/nginx/sbin/nginx
[[email protected] ~] #echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
[[email protected] ~] #vim/usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes auto;
events {
worker_connections 65000;
}
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;
if ($request_uri ~* \.(php|jsp)$){
proxy_pass http://phpservers;
}
if($request_uri ~* \.(htm|html|shtml)$){
proxy_pass http://htmlservers;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream htmlservers { #定义负载均衡服务器组名称
server 192.168.232.254:80;
server192.168.232.6:80;
}
upstream phpservers {
server 192.168.232.30:80;
server 192.168.232.31:80;
}
}
以上安装nginx步骤在master和backup上相同
测试配置文件有无错误,如果测试通过再重新加载配置文件。
[[email protected] ~] #/usr/local/nginx/sbin/nginx-t
[[email protected] ~] #/usr/local/nginx/sbin/nginx-s reload
(3)静态文件服务器配置
[[email protected]~] # yum install -y httpd
[[email protected]~] #echo"webserver01" > /var/www/html/index.html
[[email protected]~] # yum install -y httpd
[[email protected]~] #echo"webserver02" > /var/www/html/index.html
(4)动态文件服务器配置
[[email protected]~] # yum install -y httpdphp
[[email protected]~] # echo"webserver03 <?php phpinfo(); ?>" > /var/www/html/index.php
[[email protected]~] # yum install -y httpdphp
[[email protected]~] # echo "webserver04<?php phpinfo(); ?>" > /var/www/html/index.php
以上是动静分离实验的相关配置。
(5)动静分离的写法样本
if ($request_uri ~*\.(html|gif|jpg|jpeg|ico|swf|htm|xml)$){
proxy_pass http://squid_servers; }
if ($request_uri ~* \.(php|phps)$){
proxy_pass http://apache_servers; }
if ($request_uri ~* \.(jsp|do)$){
proxy_pass http://tomcat_servers; }
proxy_pass http://localhost; }
upstream tomcat_servers { s
server 192.168.1.2:8080;
server 192.168.1.1:8080;
server 192.168.1.11:8080;
}
upstream apache_servers {
server 192.168.1.5:80;
server 192.168.1.177:80;
server 192.168.1.15:80;
}
upstream squid_servers {
server 192.168.1.26:3128;
server 192.168.1.55:3128;
server 192.168.1.18:3128;
}
nginx动静分离
标签:nginx 动静分离
原文地址:http://1011779.blog.51cto.com/1001779/1767525
环境说明:
nginx master:192.168.232.18/24 (Centos7)
nginx backup:192.168.232.19/24(Centos7)
webserver01(动态):192.168.232.30/24(Centos7)
webserver02(动态):192.168.232.31/24(Centos7)
webserver03(静态):192.168.232.6/24(Centos6.7)
webserver04(静态):192.168.232.254/24(Centos6.7)
如上图,nginx将访问php等动态页面的请求交给动态页面服务器;将访问html等静态页面的请求交给静态页面服务器。
安装步骤
(1) 安装Keepalived
a) master配置
安装依赖:
# yum installgcc gcc-c++ autoconf automake -y
# yum install zlibzlib-devel openssl openssl-devel -y
# tar xvf keepalived-1.2.20.tar.gz -C /usr/local/src ;cd /usr/local/src/keepalived-1.2.20
# ./configure--prefix=/usr/local/keepalived
#make &&make install
#ln -s/usr/local/keepalived/sbin/keepalived /sbin/
# ln -s/usr/local/keepalived/bin/genhash /bin/
# ln -s /usr/local/keepalived/etc/sysconfig/keepalived/etc/sysconfig/keepalived
# mkdir /etc/keepalived/
# cp/usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# cp/usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
# servicekeepalived start
# chkconfigkeepalived on
#vim /etc/keepalived/keepalived.conf
vrrp_instanceVI_1 { #vrrp实例定义
stateMASTER #实例初始化状态,还可以是master!
nopreempt #不抢占,用于state 状态中,而且优先级要高于第二个backup
interface eth0 #实例绑定的网卡
#track_interface{ #设定额外监控的网卡,以下任意网卡故障,状态fault
#eth0
#eth1
#}
virtual_router_id51 #虚拟路由id(0-255)
priority100 #优先级,高优先级的将竞选为MASTER
advert_int1 #检查间隔,默认1s
authentication {
auth_typePASS #认证方式,pass
auth_passVI_1 #认证密码
}
virtual_ipaddress{ #虚拟ip地址(vip 可以为多个)
192.168.232.20/24eth0 cope global #虚拟ip地址绑定在 eth0 网卡
}
}
b) backup配置
keepalived安装方式同master
#vim /etc/keepalived/keepalived.conf
vrrp_instanceVI_1
state BACKUP
#nopreempt
interface eth0
#track_interface{
#eth0
#eth1
#}
virtual_router_id51
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass VI_1
}
virtual_ipaddress{
192.168.232.20/24eth0 cope global
}
}
(2)安装nginx
解决pcre依赖
# tar xvf pcre-8.37.tar.bz2-C /usr/local/src/
编译安装nginx
[[email protected] ~] #tar xvf nginx-1.9.4.tar.gz -C /usr/local/src/ ; cd/usr/local/src/nginx-1.9.4
[[email protected] ~] #./configure --prefix=/usr/local/nginx--with-http_dav_module --with-http_stub_status_module --with-http_addition_module--with-http_sub_module --with-http_flv_module --with-http_mp4_module--with-pcre=/usr/local/src/pcre-8.37
[[email protected] ~] # make ; make install ; cd
[[email protected] ~] # useradd -M -u 8001 -s /sbin/nologin nginx
[[email protected] ~] # vim /usr/local/nginx/conf/nginx.conf
[[email protected] ~] #/usr/local/nginx/sbin/nginx
[[email protected] ~] #echo "/usr/local/nginx/sbin/nginx" >> /etc/rc.local
[[email protected] ~] #vim/usr/local/nginx/conf/nginx.conf
user nginx nginx;
worker_processes auto;
events {
worker_connections 65000;
}
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;
if ($request_uri ~* \.(php|jsp)$){
proxy_pass http://phpservers;
}
if($request_uri ~* \.(htm|html|shtml)$){
proxy_pass http://htmlservers;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
upstream htmlservers { #定义负载均衡服务器组名称
server 192.168.232.254:80;
server192.168.232.6:80;
}
upstream phpservers {
server 192.168.232.30:80;
server 192.168.232.31:80;
}
}
以上安装nginx步骤在master和backup上相同
测试配置文件有无错误,如果测试通过再重新加载配置文件。
[[email protected] ~] #/usr/local/nginx/sbin/nginx-t
[[email protected] ~] #/usr/local/nginx/sbin/nginx-s reload
(3)静态文件服务器配置
[[email protected]~] # yum install -y httpd
[[email protected]~] #echo"webserver01" > /var/www/html/index.html
[[email protected]~] # yum install -y httpd
[[email protected]~] #echo"webserver02" > /var/www/html/index.html
(4)动态文件服务器配置
[[email protected]~] # yum install -y httpdphp
[[email protected]~] # echo"webserver03 <?php phpinfo(); ?>" > /var/www/html/index.php
[[email protected]~] # yum install -y httpdphp
[[email protected]~] # echo "webserver04<?php phpinfo(); ?>" > /var/www/html/index.php
以上是动静分离实验的相关配置。
(5)动静分离的写法样本
if ($request_uri ~*\.(html|gif|jpg|jpeg|ico|swf|htm|xml)$){
proxy_pass http://squid_servers; }
if ($request_uri ~* \.(php|phps)$){
proxy_pass http://apache_servers; }
if ($request_uri ~* \.(jsp|do)$){
proxy_pass http://tomcat_servers; }
proxy_pass http://localhost; }
upstream tomcat_servers { s
server 192.168.1.2:8080;
server 192.168.1.1:8080;
server 192.168.1.11:8080;
}
upstream apache_servers {
server 192.168.1.5:80;
server 192.168.1.177:80;
server 192.168.1.15:80;
}
upstream squid_servers {
server 192.168.1.26:3128;
server 192.168.1.55:3128;
server 192.168.1.18:3128;
}
nginx动静分离
标签:nginx 动静分离
原文地址:http://1011779.blog.51cto.com/1001779/1767525
相关文章推荐
- Nginx+Varnish 实现动静分离,为服务器分流,降低服务器负载
- Tomcat(二):Nginx反向代理实现Tomcat动静分离
- 基于Nginx简单实现动静分离
- Nginx+Tomcat配置动静分离(附完整配置+注释)
- 利用nginx实现负载均衡和动静分离
- nginx反向代理之缓存,负载均衡,动静分离的配置详解
- apache+nginx 实现动静分离
- Nginx+tomcat 实现负载均衡和动静分离
- Nginx+Keepalived+Tomcat之动静分离的web集群
- nginx 动静分离
- Nginx+Tomcat实现动静分离
- Nginx之动静分离
- Nginx动静分离经典案例配置
- 简单实现nginx+tomcat的反向代理与动静分离
- nginx系列3——nginx反向代理、动静分离、负载均衡
- nginx tomcat动静分离
- nginx+tomcat做动静分离配置+nginx+SSL
- (总结)Nginx与Apache、Tomcat、Resin动静分离核心配置
- centos6.5搭建nginx反向代理Apache服务并实现动静分离
- Nginx与Apache、Tomcat、Resin动静分离核心配置