路由怎么设置nginx反向代理
修改部署目录下conf子目录的nginx.conf文件(如nginx-1.5.13\conf
ginx.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; }代理地址根据实际情况修改。
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
#轮询服务器,weight为服务器权重,与访问频率成正比,max_fails最大超时次数,fail_timeout服务器代理监听超时时间
upstream backend_server {
server 192.168.203.43:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.203.44:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.203.45:80 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name www.yourdomain.com 192.168.203.42;
index index.html index.htm;
root /data0/htdocs/www;
location /
{
#如果后端的服务器返回502、504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
expires 1d;
}
}
Nginx反向代理配置参数释义:
1.proxy_set_header(设定header)
2.proxy_hide_header(隐藏header)
3.proxy_pass_header(通过header)
4.proxy_connect_timeout(代理连接超时)
5.proxy_send_timeout(代理发送超时)
6.proxy_read_timeout(代理接收超时)
7.proxy_temp_file_write_size(设定缓存文件夹大小)
8.proxy_buffer_size(代理缓冲大小)
9.proxy_buffers (代理缓冲)
10.proxy_busy_buffers_size(高负荷下缓冲大小)
11.proxy_ignore_client_abort(不允许代理端主动关闭连接)
下面就分步介绍基于Nginx反向代理的upstream对服务请求转发与分配5种方式,实际生成环境综合设置,为了便于说明问题分不同方式来说明,nginx反向代理实际生成环境的应用,请参考《如何设置nginx反向代理实现服务器瞬间故障转移》文章开篇部分的proxy.conf配置。
nginx的upstream目前支持5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream bakend {
ip_hash;
server 192.168.203.14:88;
server 192.168.203.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
server 192.168.203.14:88;
server 192.168.203.15:80;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream backend {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
upstream bakend{
#定义负载均衡设备的Ip及设备状态
ip_hash;
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 bakend;
每个设备的状态设置为:
1.down 表示单前的server暂时不参与负载
2.weight 默认为1.weight越大,负载的权重就越大。
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails次失败后,暂停的时间。
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录
location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡
已经安装好了nginx相关的环境,现仅展示相关的反向代理的配置。默认nginx.confi的配置,可能与下面的图会有不同,重要的是后面的配置。
-----注意查找nginx的默认配置文件,nginx.conf文件
修改设置代理
在nginx.conf配置中添加下图相关的配置,以线圈中的,其中的路径要以实际的配置文件路径为主
查看上面的配置中有引用/usr/local/u-mail/config/nginx/reverse-proxy.conf 配置文件.
检查测试配置
配置完后,使用nginx –t的命令测试一下,配置是否正确.是否有提示相关的错误.这个服务的路径要以具体的为主.
如配置有问题,按相关的提示进行更改.对比上面的配置信息进行查看.然后再重启下nginx的服务,使其加载刚刚的配置.
7
测试效果
再访问测试下相关的站点是否正常.是否会跳转到对应网站
8
除了nginx映射之外
我们还可以通过使用设置域名解析URL跳转来做(只有部分域名解析服务商才提供此项服务)
TP-Link无线路由器怎么设置
无线路由器怎么设置
普联AX6000路由器6030怎样安装
安装设置步骤参考如下: 接线方式,电话线接modem的adsl网口,modem的lan网口分线到无线路由器的wan网口,无线路由器的lan网口分线到电脑网口; 电脑打开任意浏览器,地址栏输入tplngin.cn(具体详见路由器背面参数),进入无线路由器登录界面,手动设置管理员登录密码,设置完成后进入无线路由器管理者后台界面...
js 正则表达式 var reg = \/(.*[0-9].*[0-9].*[0-9])\/ 是什么意思...
x 方法返回的数组有三个属性,分别是 input、inx 和 lastInx。Input 属性包含了整个被查找的字符串。Inx 属性中包含了整个被查找字符串中被匹配的子字符串的位置。LastInx 属性中包含了匹配中最后一个字符的下一个位置。示例\\\\下面的例子举例说明了 x 方法的用法: funtin RgxpTst() { var vr = Numbr(Sript...
保龄球规则中有哪些术语?
内侧:出手时由球道左边出手。外侧:出手时由球道右边出手。口袋:球击到球瓶时1,3瓶先倒。朝内:球击到球瓶时1,2瓶先倒。退八股:飞碟球出手后往右移动。:飞碟球出手后往左移动。最高局分:此球道的最高分。CLEAR GAME:最后一格洗沟的球局。早安鸡:一局中最前面三格就连续全倒。海底鸡:在最后三格打出火...
网球用英语怎么说
n. 网球(运动)n. (英)坦尼斯(人名)短语 Tennis 网球鞋 tennis shoes 网球鞋 ; 羽球鞋 ; 网球袜 ; 篮球鞋 Tennis shirt 网球衫 Tabble tennis 乒乓球 Street Tennis 街头网球 ; 硬盘版 ; 街头 Tennis players 网球员 ; 网球运动员 例句:You must reserve your strength for the tennis ...
js 正则表达式 var reg = \/(.*[0-9].*[0-9].*[0-9])\/ 是什么意思...
js中构造一个字符串变量时可以用两个正斜杠来代替双引号,改行代码也可改成 var reg = "(.*[0-9].*[0-9].*[0-9])";因此,正则表达式实际上是(.*[0-9].*[0-9].*[0-9])最外层括号代表捕获组,捕获组在此表达式中无实际用处,所以表达式也可看成 .*[0-9].*[0-9].*[0-9]...
海晓卤米: 如已经安装好了nginx相关的环境,现仅展示相关的反向代理的配置.默认nginx.confi的配置,可能与下面的图会有不同,重要的是后面的配置. 已经安装好了nginx相关的环境,现仅展示相关的反向代理的配置.默认nginx.confi的配置,可能与...
光山县18490951490: 如何设置Nginx反向代理,我们公司现在要找个服务器做反向代理.可是我不知道怎么做. - ?
海晓卤米: 没办法做这样的反向代理.除非是 ->-> 如果是这样的话,配置是这样的 location /8080 { proxy_pass ; proxy_redirect off; } location /8000 { proxy_pass ; proxy_redirect off; } proxy的其它参数就自己设置了,可以参考下
光山县18490951490: 怎么使用nginx的vhost - ?
海晓卤米: nginx为了实现反向代理的需求而增加了一个ngx_http_proxy_module模块.其中proxy_set_header指令就是该模块需要读取的配置文件.在这里,所有设置的值的含义和http请求同中的含义完全相同,除了Host外还有X-Forward-For. Host的含义...
光山县18490951490: nginx怎么做特定url的反向代理 - ?
海晓卤米: 针对特定URL做反向代理,可以在location中使用proxy_pass指令 location支持正则表达式,可以使用正则表达式来制定URL匹配的规则 location中是proxy_pass指令,用于指定反向代理的规则
光山县18490951490: 谁能解释一下nginx反向代理是什么意思? - ?
海晓卤米: nginx反向代理的意思:就是代理内部服务器对外进行服务的 nginx 代理服务. nginx反向代理的反向性在于:Nginx作为负载均衡服务时Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务...
光山县18490951490: nginx怎么配置tomcat反向代理 - ?
海晓卤米: 1. 前期准备nginx 安装成功tomcat 安装成功2. 更改nginx的配置文件更改nginx.conf文件,在http/server/location层次结构下,添加proxy_pass http://localhost:7080; 一句话即可.注意不要放了;结尾.3. 重启nginx,在浏览器中输入nginx的...
光山县18490951490: nginx 可以使用域名反向代理吗 - ?
海晓卤米: 域名和IP都是可以的,域名会多一步解析的过程,所以一般IP地址不经常变的,用IP地址更好一点 因为大部分被代理的机器都是内网的,所以变动的可能性不大
光山县18490951490: 如何获取nginx反向代理域名 - ?
海晓卤米: nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中.
光山县18490951490: 求nginx反向代理配置 - ?
海晓卤米: 没办法做这样的反向代理. 除非是 http://10.80.12.196:8080/8080/ -> http://10.80.12.198/8080/ http://10.80.12.196:8000/8000/ -> http://10.80.12.198/8000/ 如果是这样的话,配置是这样的 location /8080 {proxy_pass http://10.80.12.196:8080/;...
光山县18490951490: 如何使用Nginx反向代理使用SSL配置Jenkins - ?
海晓卤米: 根据ssl.key和ssl.crt部署nginx 首先nginx需要支持ssl_module,然后修改nginx.conf如下 server { listen 443; server_name localhost; ssl on; ssl_certificate /opt/tengine/conf/ssl/free4lab.crt; ssl_certificate_key /opt/tengine/conf/ssl/free4lab_nopass.key;...