当前位置:首页 » 文件传输 » 负载均衡访问404
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

负载均衡访问404

发布时间: 2022-11-25 20:14:59

㈠ nginx负载均衡原理

        负载均衡(Load Balance),它在网络现有结构之上可以提供一种廉价、有效、透明的方法来扩展 网络设备 和 服务器的带宽 ,并可以在一定程度上 增加吞吐量 、 加强网络数据处理能力 、提高 网络的灵活性 和 可用性 等。用官网的话说,它充当着网络流中“交通指挥官”的角色,“站在”服务器前 处理所有服务器端和客户端之间的请求 ,从而最大程度地 提高响应速率和容量利用率 ,同时 确保任何服务器都没有超负荷工作 。如果单个服务器出现故障, 负载均衡的方法会将流量重定向到其余的集群服务器,以保证服务的稳定性 。当新的服务器添加到服务器组后,也可通过负载均衡的方法使其开始自动处理客户端发来的请求。

负载均衡涉及到以下的基础知识。

a. Round Robin: 对所有的backend轮训发送请求,算是最简单的方式了,也是默认的分配方式;

b. Least Connections(least_conn): 跟踪和backend当前的活跃连接数目,最少的连接数目说明这个backend负载最轻,将请求分配给他,这种方式会考虑到配置中给每个upstream分配的weight权重信息;

c. Least Time(least_time): 请求会分配给响应最快和活跃连接数最少的backend;

d. IP Hash(ip_hash): 对请求来源IP地址计算hash值,IPv4会考虑前3个octet,IPv6会考虑所有的地址位,然后根据得到的hash值通过某种映射分配到backend;

e. Generic Hash(hash): 以用户自定义资源(比如URL)的方式计算hash值完成分配,其可选consistent关键字支持一致性hash特性;

       用户(浏览器)在和服务端交互的时候,通常会在本地保存一些信息,而整个过程叫做一个会话(Session)并用唯一的Session ID进行标识。会话的概念不仅用于购物车这种常见情况,因为HTTP协议是无状态的,所以任何需要逻辑上下文的情形都必须使用会话机制,此外HTTP客户端也会额外缓存一些数据在本地,这样就可以减少请求提高性能了。如果负载均衡可能将这个会话的请求分配到不同的后台服务端上,这肯定是不合适的,必须通过多个backend共享这些数据,效率肯定会很低下,最简单的情况是保证会话一致性——相同的会话每次请求都会被分配到同一个backend上去。

        出问题的backend要能被及时探测并剔除出分配群,而当业务增长的时候可以灵活的添加backend数目。此外当前风靡的Elastic Compute云计算服务,服务商也应当根据当前负载自动添加和减少backend主机。

        通常现代的网络服务者一个域名会关连到多个主机,在进行DNS查询的时候,默认情况下DNS服务器会以round-robin形式以不同的顺序返回IP地址列表,因此天然将客户请求分配到不同的主机上去。不过这种方式含有固有的缺陷:DNS不会检查主机和IP地址的可访问性,所以分配给客户端的IP不确保是可用的(Google 404);DNS的解析结果会在客户端、多个中间DNS服务器不断的缓存,所以backend的分配不会那么的理想。

转自 https://blog.csdn.net/weixin_43694144/java/article/details/84098906

㈡ nginx配置负载均衡,访问页面不加载JS、CSS等静态文件,F12查看源代码发现,jsp获取basePath错误

在NGINX.CONF文件中配置地址和IP:

proxy_set_header Host $host; #从header头中获取的主机名
proxy_set_header X-Real-IP $remote_addr;
#获取header头中获取的主机的真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#获取header头中获取代理者的真实ip

㈢ istio-ingress-gateway

本任务描述了如何配置 Istio,以使用 Istio Gateway 来将服务暴露至服务网格之外。

如果 EXTERNAL-IP 值已设置,说明环境正在使用外部负载均衡,可以用其为 ingress gateway 提供服务。 如果 EXTERNAL-IP 值为 <none> (或持续显示 <pending> ),说明环境没有提供外部负载均衡,无法使用 ingress gateway。 在这种情况下,你可以使用服务的 node port 访问网关。

4.2 为通过 Gateway 的入口流量配置路由:

已为 httpbin 服务创建了 虚拟服务 配置,包含两个路由规则,允许流量流向路径 /status 和 /delay 。

gateways 列表规约了哪些请求允许通过 httpbin-gateway 网关。 所有其他外部请求均被拒绝并返回 404 响应。

注意上文命令使用 -H 标识将 HTTP 头部参数 Host 设置为 “httpbin.example.com”。 该操作为必须操作,因为 ingress Gateway 已被配置用来处理 “httpbin.example.com” 的服务请求,而在测试环境中并没有为该主机绑定 DNS 而是简单直接地向 ingress IP 发送请求

事先,在服务网格中创建一个服务并向外部流量暴露该服务的 HTTP 端点

㈣ Nginx 负载均衡如何配置,高并发报502如何返回正常信息

负载均衡入口服务器配置

入口

upstream mServer{

server 149.129.114.100:8080 weight=2 fail_timeout=30s max_fails=0;

server 149.129.75.101:8080 weight=4 fail_timeout=30s max_fails=0;

server 149.129.76.102:8080 weight=4 fail_timeout=30s max_fails=0;

}

server {

listen 80;

server_name www.xxx.com;

#charset koi8-r;

#access_log logs/host.access.log main;

#遇到502、503、504等状态码时,我们可以改变将之成200,这样在调用接口时,就可以正常的返回信息,给用户提供良好的交互环境。

error_page 502 503 504 =200 /dealwith_502?callback=$arg_callback;

location /dealwith_502{

#下面这些header,是为了防止跨域问题

add_header 'Content-Type' 'application/json; charset=utf-8';

add_header 'Access-Control-Allow-Origin' '*';

add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';

add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT';

set $ret_body '{ "status": 0, "info": "系统繁忙,请稍后访问", "data": [] }';

if ( $arg_callback != "" )

{

return 200 'try{$arg_callback($ret_body)}catch(e){}';

}

return 200 $ret_body;

}

location / {

root html;

proxy_pass http://mServer;

proxy_set_header Host $host;

index index.php index.html index.htm;

}

}

服务器1

server

{

listen 8080;

#listen [::]:80;

server_name 149.129.114.100;

index home.html index.htm index.php default.html default.htm default.php;

root /home/wwwroot/xxx;

#error_page 404 /404.html;

error_page 502 503 504 =200 /dealwith_502?callback=$arg_callback;

location /dealwith_502{

add_header 'Content-Type' 'application/json; charset=utf-8';

add_header 'Access-Control-Allow-Origin' '*';

add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept';

add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT';

set $ret_body '{ "status": 0, "info": "系统繁忙,请稍后访问", "data": [] }';

if ( $arg_callback != "" )

{

return 200 'try{$arg_callback($ret_body)}catch(e){}';

}

return 200 $ret_body;

}

location / {

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php/$1 last;

break;

}

}

location ~ [^/]\.php(/|$)

{

# comment try_files $uri =404; to enable pathinfo

#try_files $uri =404;

fastcgi_pass unix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

include pathinfo.conf;

fastcgi_param PHP_ADMIN_VALUE "open_basedir=/home/wwwroot/:/tmp/:/proc/";

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\.(js|css)?$

{

expires 12h;

}

}

其他服务器配置和服务器1的配置是相同的,这样就可以避免高并发的出现。我做的 项目 就是这样处理的。

㈤ LVS负载均衡到后端apache的虚拟主机报404错误 检查日志发现:File does not exist: /etc/httpd/htdocs

错误日志和访问日志一样也是Apache的标准日志。本文分析错误日志的内容,介绍如何设置和错误日志相关的选项,文档错误和CGI错误的分类,以及如何方便地查看日志内容,等等。

一、位置和内容

错误日志无论在格式上还是在内容上都和访问日志不同。然而,错误日志和访问日志一样也提供丰富的信息,我们可以利用这些信息分析服务器的运行情况、哪里出现了问题。

错误日志的文件名字是error_log,但如果是Windows平台,则错误日志的文件名字是error.log。错误日志的位置可以通过ErrorLog指令设置:

ErrorLog logs/error.log

除非文件位置用“/”开头,否则这个文件位置是相对于ServerRoot目录的相对路径。如果Apache采用默认安装方式安装,那么错误日志的位置应该在/usr/local/apache/logs下。但是,如果Apache用某种包管理器安装,错误日志很可能在其他位置。

正如其名字所示,错误日志记录了服务器运行期间遇到的各种错误,以及一些普通的诊断信息,比如服务器何时启动、何时关闭等。

我们可以设置日志文件记录信息级别的高低,控制日志文件记录信息的数量和类型。这是通过LogLevel指令设置的,该指令默认设置的级别是error,即记录称得上错误的事件。有关该指令中允许设置的各种选项的完整清单,请参见http://www.apache.org/docs/mod/core.html#loglevel的Apache文档。

大多数情况下,我们在日志文件中见到的内容分属两类:文档错误和CGI错误。但是,错误日志中偶尔也会出现配置错误,另外还有前面提到的服务器启动和关闭信息。

二、文档错误

文档错误和服务器应答中的400系列代码相对应,最常见的就是404错误——Document Not Found(文档没有找到)。除了404错误以外,用户身份验证错误也是一种常见的错误。

404错误在用户请求的资源(即URL)不存在时出现,它可能是由于用户输入的URL错误,或者由于服务器上原来存在的文档因故被删除或移动。

顺便说一下,按照Jakob Nielson的意见,在不提供重定向或者其他补救措施的情况下,我们永远不应该移动或者删除Web网站的任何资源。Nielson的更多文章,请参见http://www.zdnet.com/devhead/alertbox/。

当用户不能打开服务器上的文档时,错误日志中出现的记录如下所示:

[Fri Aug 18 22:36:26 2000] [error]

[client 192.168.1.6] File does not exist:

/usr/local/apache/bugletdocs/Img/south-korea.gif

可以看到,正如访问日志access_log文件一样,错误日志记录也分成多个项。

错误记录的开头是日期/时间标记,注意它们的格式和access_log中日期/时间的格式不同。access_log中的格式被称为“标准英文格式”,这或许是历史跟我们开的一个玩笑,但现在要改变它已经太迟了。

错误记录的第二项是当前记录的级别,它表明了问题的严重程度。这个级别信息可能是LogLevel指令的文档中所列出的任一级别(参见前面LogLevel的链接),error级别处于warn级别和crit级别之间。404属于error错误级别,这个级别表示确实遇到了问题,但服务器还可以运行。

错误记录的第三项表示用户发出请求时所用的IP地址。

记录的最后一项才是真正的错误信息。对于404错误,它还给出了完整路径指示服务器试图访问的文件。当我们料想某个文件应该在目标位置却出现了404错误时,这个信息是非常有用的。此时产生这种错误的原因往往是由于服务器配置错误、文件实际所处的虚拟主机和我们料想的不同,或者其他一些意料不到的情况。

由于用户身份验证问题而出现的错误记录如下所示:

[Tue Apr 11 22:13:21 2000]

[error] [client 192.168.1.3] user rbowen@rcbowen.

com: authentication failure for "/cgi-bin/hirecareers/company.cgi":

password mismatch

注意,由于文档错误是用户请求的直接结果,因此它们在访问日志中也会有相应的记录。

三、CGI错误
错误日志最主要的用途或许是诊断行为异常的CGI程序。为了进一步分析和处理方便,CGI程序输出到STDERR(Standard Error,标准错误设备)的所有内容都将直接进入错误日志。这意味着,任何编写良好的CGI程序,如果出现了问题,错误日志就会告诉我们有关问题的详细信息。

然而,把CGI程序错误输出到错误日志也有它的缺点,错误日志中将出现许多没有标准格式的内容,这使得用错误日志自动分析程序从中分析出有用的信息变得相当困难。

下面是一个例子,它是调试Perl CGI代码时,错误日志中出现的一个错误记录:

[Wed Jun 14 16:16:37 2000] [error] [client 192.168.1.3] Premature

end of script headers: /usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi

Global symbol "$rv" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 81.

Global symbol "%details" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 84.

Global symbol "$Config" requires explicit package name at

/usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi line 133.

Execution of /usr/local/apache/cgi-bin/HyperCalPro/announcement.cgi

aborted e to compilation errors.

可以看到,CGI错误和前面的404错误格式相同,包含日期/时间、错误级别以及客户地址、错误信息。但这个CGI错误的错误信息有好几行,这往往会干扰一些错误日志分析软件的工作。

有了这个错误信息,即使是对Perl不太熟悉的人也能够找出许多有关错误的信息,例如至少可以方便地得知是哪几行代码出现了问题。Perl在报告程序错误方面的机制是相当完善的。当然,不同的编程语言输出到错误日志的信息会有所不同。

由于CGI程序运行环境的特殊性,如果没有错误日志的帮助,大多数CGI程序的错误都将很难解决。

有不少人在邮件列表或者新闻组中抱怨说自己有一个CGI程序,当打开网页时服务器却返回错误,比如“Internal Server Error”。我们可以肯定,这些人还没有看过服务器的错误日志,或者根本不知道错误日志的存在。决多大多数情况下,错误日志能够精确地指出CGI错误的所在以及如何修正这个错误。

四、查看日志文件

我常常告诉别人说,在进行开发的同时我会不断地检查服务器的日志,以便能够立即知道哪儿出了问题。但我得到的回答却往往是沉默。起先我以为这种沉默意味着“你当然得这样做”,后来我才发现这种沉默的真正含义是“我不知道别人的做法,但我自己是不干的。”

虽然如此,下面我们还是要看看如何方便地查看服务器日志文件。用telnet连接到服务器,然后输入下面的命令:

tail -f /usr/local/apache/logs/error_log

该命令将显示出日志文件的最后几行内容,如果有新的内容加入到日志文件,它还会立即显示出新加入的内容。

Windows用户也同样可以使用这种方法,比如可以使用各种为Windows提供的Unix工具软件包。我个人爱好一个称为AINTX的工具,它可以在http://maxx.mc.net/~jlh/nttools/index.htm找到。

还有一种替代方法是使用下面的Perl代码,它利用了一个称为File::Tail的模块:

use File::Tail;

$file=File::Tail->new("/some/log/file");

while (defined($line=$file->read)) {

print "$line";

}

无论具体采用的是哪一种方法,同时打开多个终端窗口都是一种好习惯:比如在一个窗口中显示错误日志,在另一个窗口中显示访问日志。这样,我们就能够随时获知网站上发生的事情并立即予以解决。转载

㈥ Not Found HTTP Error 404. The requested resource is not found.网站突然打开这样

The requested resource is not found意思就是无效的资源引用和不被允许访问的页面。请求的资源不否,表示你所打开的位于对方服务器上的文件已经删除或暂时不可用。 需要服务器端来处理此问题。可尝试下列方法解决问题:

1、在开发新页面时取的页面文件名当时也非常注意。包括页面里面的每一个action名,超链接的名称,菜单项,struts-config.xml,DAO类,java类里面的每个相应的名字都仔细检查过没有什么错误。

2、启动tomcat6运行系统后,在myeclipse8.5窗口浏览器中打开系统浏览页面进入系统,其他页面正常访问,只有新加的页面出现不能访问的情况。

3、后来查到一个英文页面里面提到的解决方法就是反复强调检查拼写。

4、这只是个思路,问题还是要靠自己解决。进入tomcat程序目录,检查了页面发现新加页面的文件名排列与其他页面不一样齐。原来字母前面有一个空格符。试着去掉空格,然后运行,正常了。

㈦ linuxcentos6.8 负载均衡解析apache 出现 400状态码错误信息怎么解决

当试图用错误文件处理请求时 遇到404错误-没有找到每一个互联网用户都会在某个地方碰到“404——无法找到文件”的错误页面。或许在非正式微软版本上会显示:“该页无法显示。”或者浏览器显示错误为:“页面错误。”并非每个网站都以相同的方式公布错误。错误404是最为常见的一组标准化可配置HTTP协议错误,定位在400到505之间。当这些错误得到标准化时,Web服务器处理404错误的方法最终就取决于网络管理员。这就是为什么将其称之为“可配置”。最为通用的Web服务器软件,Apache,通过位于public_html目录下的小文本文件.htaccess来控制HTTP错误的处理方法。重定向语法非常简单:“ErrorDocument [error code] [url]”。允许错误代码的URL能够指向任意一个具有有效地址的网站。通常,它指向一个工作目录中的自定义页面,如“404error.html”。Internet Explorer显示的缺省404错误页面依赖于Web用户控制的两个变量。第一个变量,可以通过进入Internet选项并选择高级标签,向下拖动滚动条到“显示友好HTTP错误消息”,取消复选框的选中状态,可以禁用此项功能。未被选中的复选框将释放原始的HTTP消息。但是,作为一个网页设计者,你不能假设用户已经取消了这个选项;同时,作为一个Internet Explorer用户,你也不能就认为网页设计者已经设计了友好的用户信息。第二个变量是错误页面自身的大小,以字节为单位。Windows注册表中的键值就是,HKEY_LOCAL_ ExplorerMainErrorThresholds,将404错误页面大小的极限值设置为512字节。如果该网站的404错误页面超出512字节,那么Internet Explorer将显示此错误页面;如果未超出范围,那么就使用自身的错误页面。(CE问答)

㈧ Linux 系统 NGINX 负载均衡404 错误怎么处理

使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器 upstream image.stream.com { server 192.168.1.25:8088; server 192.168.1.24:8088; server 192.168.1.23:8088; } 用户访问图片的时候,就有60% 的

㈨ F5负载均衡虚拟服务器配置FTP端口访问不了

正常情况下主动模式FTP是使用21端口进行通讯,20端口传输数据。
81端口是对外,真实服务器的端口是21么,还是也改掉了?
你需要看一下是否20端口也做了更改,如果更改了,需要新创建一个ftp profile,然后把数据传输的端口修改为你设置的传输端口。
另外,1024以下的端口都已经是被分配出去的,建议使用高一点的端口。
访问方式应该为ftp://vip:port或直接在命令行下访问