nginx错误处理方法.docx

上传人:b****8 文档编号:9872971 上传时间:2023-02-07 格式:DOCX 页数:14 大小:444.23KB
下载 相关 举报
nginx错误处理方法.docx_第1页
第1页 / 共14页
nginx错误处理方法.docx_第2页
第2页 / 共14页
nginx错误处理方法.docx_第3页
第3页 / 共14页
nginx错误处理方法.docx_第4页
第4页 / 共14页
nginx错误处理方法.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

nginx错误处理方法.docx

《nginx错误处理方法.docx》由会员分享,可在线阅读,更多相关《nginx错误处理方法.docx(14页珍藏版)》请在冰豆网上搜索。

nginx错误处理方法.docx

nginx错误处理方法

Nginx(“enginex”)是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。

Nginx是由IgorSysoev为俄罗斯访问量第二的站点开发的,它已经在该站点运行超过两年半了。

Igor将源代码以类BSD许可证的形式发布。

Nginx超越Apache的高性能和稳定性。

Nginx+Tomcat是目前主流的Javaweb架构,很多公司在使用,Nginx+Tomcat通过简单的配置,可以实现高性能的负载均衡,通过本文学习,可以实现Nginx+Tomcat负载均衡。

工具资源

1、Java运行环境,JDK

2、压缩版下载

3、稳定版下载

本文基于win10进行配置

配置步骤

1、JDK环境配置略

2、Tomcat安装配置

请参考:

一台服务器安装运行多个Tomcat及注册服务

本测试安装两个Tomcat,端口分别是8801和8802

安装配置完成后请确保每一个Tomcat可以正常访问

为了区分两个Tomcat,本文将第二个Tomcat的页面名称改为:

ApacheTomcat/、Nginx配置

1.解压Nginx到D盘根目录

2.

3.修改Nginx配置

#usernobody;

worker_processes1;#工作进程的个数

#error_loglogs/;

#error_loglogs/notice;

#error_loglogs/info;

#pidlogs/;

events{

worker_connections1024;#单个进程最大连接数

}

http{

include;#文件扩展名与文件类型映射表

default_typeapplication/octet-stream;#默认文件类型

#access_loglogs/main;

sendfileon;#开启高效文件传输模式

#tcp_nopushon;

#keepalive_timeout0;

keepalive_timeout65;#长连接超时时间,单位是秒

#gzipon;#启用Gizp压缩

#服务器的集群

upstreamtomcatColony{#服务器集群名字

serverweight=0;

serverweight=1;

}

server{

listen8080;#监听端口,默认是80,可以修改

server_namelocalhost;#当前服务的域名

location/{

proxy_pass;#指定使用集群

proxy_redirectdefault;

}

error_page500502503504/;

location=/{

roothtml;

}

}

注意:

nginx在配置upstream时,有两个参数:

ip_hash(同一IP一直使用同一台server服务)

weight(server的使用权重,数值越大,nginx分发的请求越多)

1.启动Nginx

2.Nginx目录下:

D:

\,运行,即可启动。

启动可查看进程

3.

效果

访问:

,即可打开Tomcat,通过不断F5刷新,可以观察在Tomcat1、2之间切换,由于集群中Tomcat2权重配置较大,所有Tomat分配到Tomcat的几率就大一些。

Windows服务器nginx+tomcat服务负载均衡

一.安装两个tomcat服务自启动

1.解压两个tomcat,名称为分别1,2

2.配置环境变量

3.修改文件中的三个端口号,使得两个tomcat不冲突

(1)

(2)

(3)

4.修改tomcat\bin目录下的三个文件(、、),分别对应环境变量中的CATALINA_HOME,CATALINA_BASE

例如修改tomcat2:

(1)将下的%CATALINA_HOME%改为%CATALINA_HOME2%,%CATALINA_BASE%改为%CATALINA_BASE2%(可以全部替换)

(2)将和下的%CATALINA_HOME%改为%CATALINA_HOME2%

5.tomcat注册为服务

修改\bin目录下文件

例如tomcat2:

(1)将下的%CATALINA_HOME%改为%CATALINA_HOME2%,%CATALINA_BASE%改为%CATALINA_BASE2%

(2)将默认的Servicename修改为想要的,比如(也可以注册的时候在指定名字),DISPLAYNAME是在windows服务列表显示的名称。

DOS窗口进入tomcat的bin目录并执行命令注册服务:

install(不写就是默认服务名)

表示安装成功。

服务里出现两个tomcat

6.tomcat启动关闭命令

(1)dos启动:

netstarttomcat8

(2)dos关闭:

netstoptomcat8

(3)删除服务:

remove

二.nginx负载均衡

注册成服务

2.配置文件

nginx的upstream默认是以轮询的方式实现负载均衡,还可以增加权重weight=1来改变轮询的几率

#gzipon;

upstreamtomcat_service{

server重启nginx,把tomcat欢迎页(root/)修改下用于区分是否访问的不同tomcat

Windows+Nginx+Tomcat整合的安装与配置学习笔记

以下全部是nginx在window7下运行的;

nginx学习总结:

我的是放在F盘

1、启动:

F:

\(找到相应的路径,直接运行也可以)

注:

建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。

2、停止:

F:

\-sstop(或者-squit)

注:

stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。

3、重新载入Nginx:

F:

\-sreload

注:

当配置信息修改,需要重新载入这些配置时使用此命令。

4、重新打开日志文件:

F:

\-sreopen

5、查看Nginx版本:

F:

\-v

6、测试nginx是否启动成功:

F:

\-t

以上是一些经常用到的命令;

完整实例:

1、到官网下载nginx;

下载到f盘;

2.启动nginx;

3.访问页面;

 

4.我们可以看到nginx文件夹内有一个conf文件夹,其中有好几个文件,其他先不管,我们打开,可以看到一段:

这段代码在server里面,相当于一个代理服务器,当然可以配置多个。

下面我们仔细来分析一下:

listen:

表示当前的代理服务器监听的端口,默认的是监听80端口。

注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。

server_name:

表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。

location:

表示匹配的路径,这时配置了/表示所有请求都被匹配到这里

root:

里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

index:

当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。

下面的error_page是代表错误的页面,这里我们暂时不用,先不管它。

那我们知道了具体的配置了,怎么让它访问localhost时转到tomcat时。

实际上就修改两个地方:

server_namelocalhost:

8080;

location/{

proxy_pass;

}

我们就修改了上面两个地方,我的tomcat在8080端口,可以根据自己的需要修改。

这里有一个新元素proxy_pass,它表示代理路径,相当于转发,而不像之前说的root必须指定一个文件夹。

此时我们修改了文件,是不是就意思着必须先关了nginx再重新启动了,其实不必,nginx可以重新加载文件的。

我们直接运行:

如果不想直接加载,而只是想看看自己的配置文件有没有问题,可以直接输入:

这可以检查配置文件中是否有错。

一切没问题了,然后我们再重新打开,我们看到下面的页面:

这时,我们发现它并不是刚才的welcome页面了,而是tomcat的管理页面了,不管我们点击什么链接都是没问题的,相当于直接访问,直接修改的proxy_pass地址就可以了;

 

Nginx错误处理方法:

bind()tofailed

今天启动window上的nginx总是报错

错误信息是bind()tofailed(10013:

Anattemptwasmadetoaccessasocketinawayforbiddenbyitsaccesspermissions)

大概意思是nginxlisten的80后端口被占用于是XX了下查看端口的命令

运行–cmd

C:

\>netstat-aon|findstr"80"

TCPLISTENING2448

端口被进程号为2448的进程占用,继续执行下面命令:

C:

\>tasklist|findstr"2448"

2016Console016,064K

很清楚,thread占用了你的端口,Killit

如果第二步查不到,那就开任务管理器,进程—查看—选择列—pid(进程位标识符)打个勾就可以了

看哪个进程是2448,然后杀之即可。

另外,强制终止进程:

CMD命令:

taskkill/F/pid1408

其实上面我都还没解决问题最后发现有个这个是apache的进程结束了这个进程nginx才启动了

如果朋友们使用的phpstudy这个集成软件,那么你在使用它的nginx的时候就要注意了,如果你的listen端口不是80,但是还是出现了上述的错误,那么你要去看看include里的配置

Nginx+Tomcat+HTTPS配置原来不需要在Tomcat上启用SSL支持

互联网开发模式的经验之谈>>>

之前在网上搜索到的很多文章在描述Nginx+Tomcat启用HTTPS支持的时候,都必须在Nginx和Tomcat两边同时配置SSL支持。

但我一直在想为什么就不能按照下面的方式来配置呢就是Nginx上启用了HTTPS,而Nginx和Tomcat之间走的却是普通的HTTP连接。

但是搜索很多没有解决办法,最后还是老老实实的Nginx和Tomcat同时配置的SSL支持。

最近给OSChina买了个新的支持*.泛域名的证书,然后我又开始偷懒的想为什么Tomcat一定要配HTTPS呢没道理啊。

然后潜心搜索终于找到了解决方案。

原来却是如此的简单。

最终配置的方案是浏览器和Nginx之间走的HTTPS通讯,而Nginx到Tomcat通过proxy_pass走的是普通HTTP连接。

下面是详细的配置(Nginx端口80/443,Tomcat的端口8080):

Nginx这一侧的配置没什么特别的:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

upstreamtomcat{

serverfail_timeout=0;

}

#HTTPSserver

server{

listen443ssl;

server_namelocalhost;

ssl_certificate/Users/winterlau/Desktop/SSL//Users/winterlau/Desktop/SSL/;

ssl_session_cacheshared:

SSL:

1m;

ssl_session_timeout5m;

ssl_ciphersHIGH:

!

aNULL:

!

MD5;

ssl_prefer_server_cipherson;

location/{

proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

proxy_set_headerHost$http_host;

proxy_set_headerX-Forwarded-Protohttps;

proxy_redirectoff;

proxy_connect_timeout240;

proxy_send_timeout240;

proxy_read_timeout240;

#note,thereisnotSSLhere!

plainHTTPisused

proxy_pass;

}

}

其中最为关键的就是ssl_certificate和ssl_certificate_key这两项配置,其他的按正常配置。

不过多了一个proxy_set_headerX-Forwarded-Protohttps;配置。

最主要的配置来自Tomcat,下面是我测试环境中的完整:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

connectionTimeout="20000"

redirectPort="443"

proxyPort="443"/>

unpackWARs="true"autoDeploy="true">

remoteIpHeader="x-forwarded-for"

remoteIpProxiesHeader="x-forwarded-by"

protocolHeader="x-forwarded-proto"

/>

上述的配置中没有什么特别的,但是特别特别注意的是必须有proxyPort="443",这是整篇文章的关键,当然redirectPort也必须是443。

同时节点的配置也非常重要,否则你在Tomcat中的应用在读取getScheme()方法以及在中配置的一些安全策略会不起作用。

怎么样,简单到一塌糊涂吧!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1