nginx负载均衡+反向代理配置+动静分离

本文详细介绍了如何使用Nginx进行反向代理配置,实现客户端请求的接收与分发,以及如何结合负载均衡策略,通过配置upstream模块来平衡多个后端服务器的请求,包括静态和动态内容的分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反向代理:用一台机子代理后端服务求接收客户端请求,并分发请求给后端服务器
1、反向代理配置(依赖ngx_http_proxy_module 模块实现 在location标签里加如下配置)
vim /etc/nginx/conf.d/test.conf #修改代理服务器配置 ,最好将默认配置子文件备份
server {

listen       80;
server_name  localhost;

location / {
proxy_pass http://你要代理的后端服务器ip;				 #真实后端服务器的地址,可以是ip也可以是域名和url地址
proxy_redirect default;          									 #如果真实服务器使用的是的真实IP:非默认端口。则改成IP:默认端口
proxy_set_header Host $http_host;   							 # 重新定义或者添加发往后端服务器的请求头
proxy_set_header X-Real-IP $remote_addr;   					 #只记录连接服务器的上一个ip地址信息。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  ##通过这个选项可以记录真正客户端机器的ip地址

#上面这里几行最好全写,下面为调优可选
proxy_connect_timeout 30; #后端服务器连接的超时时间发起三次握手等候响应超时时间
proxy_send_timeout 60; #后端服务器数据回传时间,就是在规定时间之内后端服务器必须传完所有的数据
proxy_read_timeout 60; #ginx接收upstream(上游/真实) server数据超时, 默认60s, 如果连续的60s内没有收到1个字节, 连接关闭。像长连接
}
}
负载均衡要结合反向代理一起使用
2、负载均衡配置(依赖:upstream 在server{}标签上面加upstream{}标签)
vim /etc/nginx/conf.d/test.conf

upstream testapp { #实现负载均衡的标签,下面为代理的服务器ip ,其中testapp为自定义
server 10.0.105.199:8081;
server 10.0.105.202:8081;
}
server {

location / {
proxy_pass http://testapp; #当有负载均衡是这里写testapp后端地址池 请求转向 testapp 定义的服务器列表
}

作为代理服务器里的location不在有网站发布目录,location里写的是反向代理的配置,网站发布目录都在后端服务上。
下面是反向代理+负载均衡的完整配置(用了两个地址池,及两个location个匹配)
upstream static {

    server  192.168.142.159 weight=1;

}
upstream php {

    server  192.168.142.165 weight=1;

}

server {
    listen  80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location ~\.(jpg|png|css|js)$ {
    proxy_pass http://static;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    location ~\.(php|jsp)$ {         #~\.       $ 代表匹配以.php或.jsp结尾的
    proxy_pass http://php;
    proxy_set_header Host $host:$server_port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

}
3、通过nginx的反向代理和负载均衡来实现动静分离
其中就是将静态代码放在一些后端服务器,动态代码(php,java)放在另一些后端服务器
然后在代理机上分别写静态upstream地址池,动态upstream地址池,然后也写两个location来匹配代理这些地址池 上面的就是代理机的配置
下面分别为后端动静服务器配置

后端静态服务器配置:

server {
listen 80;
server_name localhost;

    location ~ \.(html|jpg|png|js|css) {
    root   /home/www/nginx;
    expires      1d; #为客户端设置静态资源缓存时间
    }

}

后端动态服务器配置:
server {
listen 80;
server_name localhost;
location ~ .php$ {
root /home/nginx/html; #指定网站目录
fastcgi_pass 127.0.0.1:9000; #开启fastcgi连接php地址
fastcgi_index index.php; #指定默认文件
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name; #站点根目录,取决于root配置项
include fastcgi_params; #包含fastcgi使用的常量
}
}
fastcgi_param SCRIPT_FILENAME 这一行要将原来的换成 d o c u m e n t r o o t document_root documentrootfastcgi_script_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值