基于nginx 的在一台机器上配置反向代理及实现动静分离 负载均衡功能:
1.配置虚拟IP
ifconfig enp0s25:1 10.0.13.100
ifconfig enp0s25:2 10.0.13.101
ifconfig enp0s25:3 10.0.13.102
ifconfig enp0s25:4 10.0.13.103
2.在/etc/nginx/conf.d/创建两个.conf文件
用来写处理动静文件的服务器配置文件
(分别为 static.conf 和 move.conf)
- 静态:
vim static.conf
#在static.conf中写入如下内容:
server {
listen 10.0.13.102:80;
server_name www.static_html.com;
access_log /var/log/www.static_html.com.log main;
error_log /var/log/www.static_html.com.error.log;
set_real_ip_from 10.0.13.102;
location / {
root /usr/share/nginx/static;
index index.html;
}
}
server {
listen 10.0.13.103:80;
server_name www.static_html1.com;
access_log /var/log/www.static_html1.com.log main;
error_log /var/log/www.static_html1.com.error.log;
set_real_ip_from 10.0.13.103;
location / {
root /usr/share/nginx/static1;
index index.html;
}
}
- 动态:
vim move.conf
#在move.conf中写入如下内容:
server {
listen 10.0.13.100:80;
server_name www.move_html.com;
access_log /var/log/www.move_html.com.log main;
error_log /var/log/www.move_html.com.error.log;
set_real_ip_from 10.0.13.100;
location / {
root /usr/share/nginx/move;
index index.php;
}
}
server {
listen 10.0.13.101:80;
server_name www.move_html1.com;
access_log /var/log/www.move_html1.com.log main;
error_log /var/log/www.move_html1.com.error.log;
set_real_ip_from 10.0.13.101;
location / {
root /usr/share/nginx/move1;
index index.php;
}
}
3. 在/usr/share/nginx/下创建四个文件夹
分别为static、static1、move、move1用来放动静网页 并将网页内容+ip 写入对应的index文件中 在轮询时加以区别显示
mkdir static
echo 'static html 10.0.13.102'>static/index.html
mkdir static1
echo 'static html 10.0.13.103'>static1/index.html
##############################################
mkdir move
echo 'move html 10.0.13.100'>move/index.php
mkdir move1
echo 'move html 10.0.13.101'>move1/index.php
4.在/etc/nginx/conf.d/下创建proxy.cof文件
vim proxy.conf
在代理文件中写入配置内容:
#设置处理动静轮询的虚拟ip:
upstream moveweb {
server 10.0.13.100 ;
server 10.0.13.101 ;
}
upstream staticweb {
server 10.0.13.102 weight=1; #可设置一定的权重
server 10.0.13.103 weight=2;
}
server {
listen 10.0.122.38:80; #真实物理机ip
server_name www.proxy.com;
root /usr/share/nginx/proxy;
access_log /var/log/www.static.com.log main;
error_log /var/log/www.static.com.error.log;
location ~ .*\.(html|gif|jpg|png|bmp|swf|jpeg)$ { #正则匹配静态页面,以后缀可区分
proxy_pass http://staticweb;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}
location ~ \.php$ { #正则匹配动态页面,以后缀可区分
proxy_pass http://moveweb;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-NginX-Proxy true;
proxy_connect_timeout 30;
proxy_send_timeout 60;
proxy_read_timeout 60;
proxy_buffering on;
proxy_buffer_size 32k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_max_temp_file_size 256k;
}
}
网友评论