java apache tomcat resin nginx 详细配置

java apache tomcat resin nginx 详细配置
java apache tomcat resin nginx 详细配置

目录

一、WINDOWS版配置 (1)

1、JAVA运行环境的安装与配置 (1)

(1) 下载 (1)

(2) 安装 (2)

(3) 配置 (4)

2、应用服务器的安装与配置 (5)

(1) Tomcat (5)

1、下载与安装 (5)

2、启动与停止 (5)

3、修改启动端口号 (6)

4、配置虚拟目录 (6)

5、配置虚拟主机 (7)

6、web.xml配置修改 (8)

7、性能优化 (9)

8、数据库连接配置 (11)

(2) Apache (11)

1、下载与安装 (11)

2、Tomcat-Connectors下载 (16)

3、与Tomcat的整合(负载均衡) (16)

1)Apache配置修改 (16)

2)Tomcat配置修改 (18)

4、Apache优化 (19)

(3) Nginx (20)

1、下载与安装 (20)

2、启动与停止 (21)

3、与Tomcat整合(负载均衡) (21)

1)Nginx配置修改 (21)

2)Tomcat配置修改 (22)

4、Nginx优化 (23)

(4) Resin (24)

1、下载与安装 (24)

2、启动与停止 (24)

3、配置虚拟目录 (25)

一、Windows版配置

1、JAVA运行环境的安装与配置

(1)下载

下载jdk-6u3-windows-i586-p版本JDK。

(2)安装

接收许可证协议。

选择JDK安装路径,默认路径C:\Program Files\Java\jdk1.6.0_03\,实际安装过程可以选择其他路径,如D:\Java\jdk1.6.0。一般建议不要安装在操作系统所在的盘上,以免操作系统出现问题而无法使用或重新安装。

正在安装JRE,请耐心等待。

选择安装JRE路径,默认路径C:\Program Files\Java\jre1.6.0_03\,实际安装过程可以选择其他路径,如D:\Java\jre1.6.0\。一般建议不要安装在操作系统所在的盘上,以免操作系统出现问题而无法使用或重新安装。

正在安装JRE,请耐心等待。

直到出现下面的画面,安装向导成功完成。

(3)配置

右击“我的电脑”,点击“属性”,在点击“高级”,最后点击“环境变量”。

1、在“Administrator的用户变量”中(Administrator为当前登陆的用户),设置3项属性,

JAVA_HOME,PATH,CLASSPATH,若已存在则点击“编辑”,不存在则点击“新建”。

2、点击“开始菜单”—“运行”,键入“cmd”。

3、键入命令“java -version”,“javac”,“java”几个命令,出现画面,说明环境变量配置成功。

2、应用服务器的安装与配置

(1)Tomcat

1、下载与安装

Tomcat下载地址https://www.360docs.net/doc/4e6053309.html,/download-60.cgi,下载T omcat6.0免安装解压缩版32-bit Windows zip。现最新版本为apache-tomcat-6.0.29。将下载后的文件解压缩到任意目录下。如F:\apache-tomcat-6.0.29。

解压缩后文件夹

2、启动与停止

启动tomcat,在F:\apache-tomcat-6.0.29\bin文件夹下找到startup.bat,双击启动tomcat,见到如下图片tomcat启动成功。

停止tomcat,在F:\apache-tomcat-6.0.29\bin文件夹下找到shutdown.bat,双击停止tomcat。

3、修改启动端口号

修改前启动信息:

修改后启动信息:

4、配置虚拟目录

1)修改server.xml文件

设置虚拟目录为“displaypage”,通过http://localhost/displaypage访问物理路径“D:\ displaypage”文件夹里面的内容。设置过程如下:

2)不修改server.xml文件

在F:\apache-tomcat-6.0.29\conf目录下建立Catalina文件夹,在Catalina目录下建立localhost文件夹。

在localhost目录下建立一个xml文件,文件名为虚拟目录名称(注意区分大小写),如:displaypage.xml。

5、配置虚拟主机

打开F:\apache-tomcat-6.0.29\conf\server.xml文件,找到在其后添加如下代

6、web.xml配置修改

修改F:\apache-tomcat-6.0.29\conf\web.xml文件,便于支持doc, xsl, ppt,rar, pdf, chm等文件的正常下载。

打开web.xml文件,添加如下代码:

rar

application/rar

rar

application/octet-stream

xls

application/vnd.ms-excel

doc

application/vnd.ms-word

ppt

application/vnd.ms-powerpoint

7、性能优化

1)JAVA虚拟机优化和启动垃圾回收机制

打开F:\apache-tomcat-6.0.29\bin\catalina.bat文件,在

2)Tomcat自身优化

找到如下代码,将其注释去掉

打开F:\apache-tomcat-6.0.29\conf\tomcat-users.xml文件,找到如下代码删除或注释掉:

8、数据库连接配置

打开F:\apache-tomcat-6.0.29\conf\context.xml文件,在之间

添加如下代码:

name="数据源名称"

auth="Container"

type="javax.sql.DataSource"

factory="org.logicalcobwebs.proxool.ProxoolDataSource"

proxool.alias="pop"

user="用户名"

password="密码"

delegateProperties="foo=bar"

proxool.driver-url="jdbc:mysql://数据库IP地址:3306/数据库名称"

proxool.driver-class="com.mysql.jdbc.Driver"

proxool.house-keeping-sleep-time="30000"

proxool.maximum-active-time="5"

proxool.prototype-count="2"

proxool.statistics="1m,15m,1d"

proxool.simultaneous-build-throttle="10"

proxool.minimum-connection-count="5"

proxool.maximum-connection-count="500"

proxool.house-keeping-test-sql="select CURRENT_DATE"

proxool.test-before-use="true"/>

这里连接的是MySQL数据库,采用的是proxool连接池连接。

(2)Apache

1、下载与安装

Apache下载地址:https://www.360docs.net/doc/4e6053309.html,/dist/httpd/binaries/win32/,选择下载windows平台安装包文件apache_2.2.3-win32-x86-no_ssl.msi。

接收安装协议。

配置Apache服务器信息。Network Domain:设置站点域名。Server Name:设置服务器名称。以上两项为选填。

Administrator's Email Address(必填):设置站点管理员邮件地址,Apache文档说明当

站点出错时的页面底部会出现该地址。

下面有两个选择

第一个使用默认的80端口,并作为系统服务自动启动。

第二个仅为当前用户安装,使用端口8080,手动启动。

选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。

出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.2.3”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change...”,手动指定安装目录。

这里选择安装在“F:\”,一般建议不要安装在操作系统所在盘,以免操作系统损坏之后,还原操作把Apache配置文件也清除了。

确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。

正在安装Apache,请耐心等待。

直到出现下面的画面,安装向导成功完成,按“Finish”结束Apache的软件安装。

重启机器,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行。

右键图标

Open Apache Monitor 打开Apache监听器。其中包括开始,停止,重启等操作。

Open Services 打开系统服务。

打开浏览器,在地址栏中输入http://127.0.0.1/,页面显示正常。

2、Tomcat-Connectors下载

https://www.360docs.net/doc/4e6053309.html,/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/此处注意一定要下载与Apache版本匹配的jk。jk文件名后半部分名称反应Apache的版本,如:mod_jk-1.2.31-httpd-2.2.3.so其匹配的Apache为2.2.3,与本次安装的Apache

版本一致。

然后将该文件拷贝到Apache安装目录\Apache2.2\modules文件夹中。

3、与Tomcat的整合(负载均衡)

1)Apache配置修改

在Apache安装目录\Apache2.2\conf文件夹,新建uriworkermap.properties文件添加

在Apache安装目录\Apache2.2\conf文件夹,新建workers.properties文件添加如下内容:

2)Tomcat配置修改

将准备好的tomcat,分别解压缩到两个目录tomcat1和tomcat2。

AJP端口号必须跟Apache安装目录\Apache2.2\conf\workers.properties文件中

配置的tomcat端口号保持一致。

jvmRoute值对应workers.properties中worker.controller.balance_workers的两个值。测试修改后的两个tomcat:

修改成功。

4、Apache优化

修改Apache安装目录\Apache2.2\conf\httpd.conf文件,为如下内容:

# Apache安装目录

ServerRoot "F:/Apache Software Foundation/Apache2.2"

# 禁止DNS域名的反向查询

HostNameLookups Off

# Timeout :接收和发送前超时秒数

Timeout 300

# KeepAlive: 是否允许稳固的连接(每个连接有多个请求),设为"Off"则停用。KeepAlive On

# MaxKeepAliveRequests: 在稳固连接期间允许的最大请求数,设为0表示无限制接入。MaxKeepAliveRequests 50

# KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数KeepAliveTimeout 5

# Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值

Listen 80

# 动态共享模块装载

Include conf/moudle.conf

User daemon

Group daemon

ServerAdmin koy_1000@https://www.360docs.net/doc/4e6053309.html,

ServerName localhost

# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。DocumentRoot "F:/apache-tomcat-6.0.29/ROOT"

DirectoryIndex index.html index.jsp

ErrorLog "logs/error.log"

LogLevel warn

DefaultType text/plain

TypesConfig conf/mime.types

AddType application/x-compress .Z

AddType application/x-gzip .gz .tgz

# Server-Pool大小设定(针对MPM的)

Include conf/extra/httpd-mpm.conf

打开浏览器访问http://127.0.0.1/。

访问成功分配到两个tomcat上,负载均衡配置成功。

详细优化参考Apache 2.2 中文版参考手册。

(3)Nginx

1、下载与安装

Nginx下载地址https://www.360docs.net/doc/4e6053309.html,/en/download.html下载nginx/Windows-0.8.53版本。

将下载解压缩到任意位置,这里解压缩到F:\根目录下。

nginx负载均衡宕机配置

1.摘要 (1)结论 详细描述了nginx记录失效节点的6种状态(time out、connect refuse、500、502、503、504,后四项5XX需要配置proxy_next_upstream中的状态才可 以生效)、失效节点的触发条件和节点的恢复条件、所有节点失效后nginx会进 行恢复并进行重新监听。 (2)Nginx 负载均衡方式介绍 Nginx的负载均衡方式一共有4种:rr(轮询模式)、ip_hash、fair、url_hash。(3)Ngxin负载均衡和相关反向代理配置内容 Nginx负载均衡和与容错相关的反向代理的配置。 (4)获取后端流程 后端server的自动容错流程图。 (5)测试环境和测试结果 针对几种错误方式进行自动容错测试。 2.结论 (1)nginx 判断节点失效状态 Nginx 默认判断失败节点状态以connect refuse和time out状态为准,不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以nginx判断其还是存活状态;除非添加了proxy_next_upstream指令设置 对404、502、503、504、500和time out等错误进行转到备机处理,在 next_upstream过程中,会对fails进行累加,如果备用机处理还是错误则直接返回错误信息(但404不进行记录到错误数,如果不配置错误状态也不对其进行错误状态记录),综述,nginx记录错误数量只记录timeout 、connect refuse、502、500、503、504这6种状态,timeout和connect refuse是永远被记录错误状态,而502、500、503、504只有在配置proxy_next_upstream后nginx才会记录这4种HTTP 错误到fails中,当fails大于等于max_fails时,则该节点失效; (2)nginx 处理节点失效和恢复的触发条件 nginx可以通过设置max_fails(最大尝试失败次数)和fail_timeout(失效时间,在到达最大尝试失败次数后,在fail_timeout的时间范围内节点被置为失效,除非所 有节点都失效,否则该时间内,节点不进行恢复)对节点失败的尝试次数和失效时间 进行设置,当超过最大尝试次数或失效时间未超过配置失效时间,则nginx会对节点 状会置为失效状态,nginx不对该后端进行连接,直到超过失效时间或者所有节点都 失效后,该节点重新置为有效,重新探测;

Nginx反向代理服务器的工作原理

最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡。所以搜罗了一些关于反向代理服务器的内容,整理综合。 一概述 反向代理(Reverse Proxy)方式是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器;并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 通常的代理服务器,只用于代理内部网络对Internet的连接请求,客户机必须指定代理服务器,并将本来要直接发送到Web服务器上的http请求发送到代理服务器中。当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。 图1 反向代理服务器的基本原理 二反向代理服务器的工作原理 反向代理服务器通常有两种模型,它可以作为内容服务器的替身,也可以作为内容服务器集群的负载均衡器。 1,作内容服务器的替身 如果您的内容服务器具有必须保持安全的敏感信息,如信用卡号数据库,可在防火墙外部设置一个代理服务器作为内容服务器的替身。当外部客户机尝试访问内容服务器时,会将其送到代理服务器。实际内容位于内容服务器上,在防火

墙内部受到安全保护。代理服务器位于防火墙外部,在客户机看来就像是内容服务器。 当客户机向提出请求时,请求将转到代理服务器。然后,代理服务器通过防火墙中的特定通路,将客户机的请求发送到内容服务器。内容服务器再通过该通道将结果回传给代理服务器。代理服务器将检索到的信息发送给客户机,好像代理服务器就是实际的内容服务器(参见图 2)。如果内容服务器返回错误消息,代理服务器会先行截取该消息并更改标头中列出的任何 URL,然后再将消息发送给客户机。如此可防止外部客户机获取内部内容服务器的重定向 URL。 这样,代理服务器就在安全数据库和可能的恶意攻击之间提供了又一道屏障。与有权访问整个数据库的情况相对比,就算是侥幸攻击成功,作恶者充其量也仅限于访问单个事务中所涉及的信息。未经授权的用户无法访问到真正的内容服务器,因为防火墙通路只允许代理服务器有权进行访问。 图2 反向代理服务器作为内容服务器的替身 可以配置防火墙路由器,使其只允许特定端口上的特定服务器(在本例中为其所分配端口上的代理服务器)有权通过防火墙进行访问,而不允许其他任何机器进出。 2,作为内容服务器的负载均衡器 可以在一个组织内使用多个代理服务器来平衡各 Web 服务器间的网络负载。在此模型中,可以利用代理服务器的高速缓存特性,创建一个用于负载平衡的服务器池。此时,代理服务器可以位于防火墙的任意一侧。如果 Web 服务器每天都会接收大量的请求,则可以使用代理服务器分担 Web 服务器的负载并提高网络访问效率。 对于客户机发往真正服务器的请求,代理服务器起着中间调停者的作用。代理服务器会将所请求的文档存入高速缓存。如果有不止一个代理服务器,DNS 可

nginx配置解析详解(一)

nginx配置解析详解(一) 现在针对nginx源码分析的blog和文章已经很多了,之前我也看过不少,大家的分析都很不错。太多重复的内容就不写了,主要想针对在我分析代码和查阅blog的过程中,发现的一些比较晦涩或者某些细节有待展开讨论的地方,给出我的自己理解和看法,希望跟大家交流和学习。 使用的nginx版本是nginx-1.0.6,我最开始看的代码是0.7.62,新的版本在功能和稳定性上做了很多的工作。在分析的时候,我尽量简单明了,不太重要的地方一带而过,具体地大家可以去读代码。相对复杂或者晦涩的地方,将详细展开。 首先我们从配置文件开始,下面的分析是建立在网友对nginx的配置文件结构有大概熟悉为前提,这样才可以很好的理解代码。这里有必要提醒一点:原始代码目录中 ngx_modules这个结构,是找不到它的定义和初始化,要看到它,你必须执行configure,make,在原来的代码目录下会出现一个objs文件夹,里面的3个文件ngx_auto_config.h,ngx_auto_headers.h,ngx_modules.c,需要在建source insight工程时也包含进去,这样有利于我们把握整个代码结构。有意思的是,nginx的configure文件是作者手工写的,里面有许多管理代码工程的方法,有时间的话,也是值得学习下的。 1.ngx_cycle_t *ngx_init_cycle(ngx_cycle_t *old_cycle); 配置文件的解析相关的处理主要在ngx_init_cycle函数中被调用。既然如此,我们就先说说ngx_init_cycle函数吧。 它需要一个参数类型为ngx_cycle_t *,返回值也是一个ngx_cycle_t*,与此同时我们注意到参数名为old_cycle,那么这个函数的作用是啥呢?很明显是由old得到一个new。其中ngx_cycle_t的结构保存一些全局的配置和信息。 这个函数具体作用将在reconfig(重读配置文件)的时候得到体现,可以理解为old_cycle 是当前正在使用的配置信息,当配置文件做了某些修改之后,ngx_init_cycle通过old_cycle 中的一些数据,对new_cycle进行一些设置,在经过进一步的配置解析之后,就可以得到一个new cycle。 2.char *ngx_conf_parse(ngx_conf_t *cf, ngx_str_t *filename) 当我们使用sourceinsight查看这个函数的调用情况时,会发现调用它的地方很多。其实,入口点就在ngx_init_cycle中对ngx_conf_parse调用,后面的所有的调用可以看作是在此之后的递归调用。为什么会是这个样子呢?原因在于nginx是一边读取配置信息,一边解析执行相关的处理,具体一点讲,就是“读一行,执行一行”,一行的定义在这里是指以分号或者是“{”和“}”等结尾的一行,例如:我们解析到http {},我们就调用针对httpblock的处理,在处理的时候我们又会碰到server {},自然就会调用server block的处理。。。以此类推!。

使用Nginx搭建反向代理

引言:最近公司有台服务器遭受DDOS攻击,流量在70M以上,由于服务器硬件配置较高所以不需要DDOS硬件防火墙。但我们要知道,IDC机房是 肯定不允许这种流量一直处于这么高的,因为没法具体知道后面陆续攻击的流量会有多大,如果流量过大就会导致整个IDC网络瘫痪。我们都知道北方的数据中心和南方的数据中心从带宽出口上来讲南方多数机房完全有能力扛得住DDOS攻击,东莞的电信机房就不错。有朋友说过面对这种攻击可以在南方电信 在放一台服务器,然后做个反向代理;令我不解的是倘若再在南方放一台服务器,然后在南方电信服务器上做反向代理的话北方的用户访问速度肯定会很慢(南方机房多为电信单线,北京的多为双线或BGP线路)。好了,我们言归正传,不管用反向代理是怎么去实现,首先我们要解决的是如何搭建一台反向代理服务器,免得临时抱佛脚。 首先我们来看理解一下什么是反向代理,如下图:当客户机向站点发出请求时,请求将转到代理服务器,然后然后代理服务器将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户,对于访问服务器的用户来讲,此时的代理服务器对外就表现为一台服务器;我们还可以在反向代理服务器上加上一些策略,这样就对web服务器进行了一种安全保护,即使用户想入侵网站,也无法到达web服务器;反向代理服务器后端还可以放置多台 web服务器,从而可以减轻网站压力,起到集群作用 我们都知道Nginx是一款非常不错的程序,其最大的优点就是能承载高并发连接,这次我们就用Nginx来做一台反向代理服务器 环境描述:反向代理服务器为Linux系统,安装有Nginx;web服务器为windows 系统,装有IIS 目标:客户端在访问192.168.1.20的时候得到的内容必须是192.168.1.10这台web服务器上的内容

Nginx高级配置

Nginx高级配置 1. Nginx连接后端的方式:反向代理(proxy_pass)、直连 fastcgi(fastcgi_pass) 例子: fastcgi_pass backend1; proxy_pass http://backend2; location块中配置此项,表示用反向代理或直连fastcgi的方式连接后端服务,其中backend1、backend2为upstream配置,其中配置下游的ip&port列表和调度参数,见下文。 注意:fastcgi_pass与proxy_pass是互斥配置,不能同时生效。 2. Nginx调度与负载均衡配置(upstream 配置) 1) 轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器。weight指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,weight默认值为1。 例如: upstreambakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 2) ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如: upstreambakend { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } 3) hash 每个请求按访问$hash_seed的hash结果分配。 例如: upstreambakend { hash $hash_seed; server 192.168.0.14:88; server 192.168.0.15:80;

在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现

在Linux虚拟机中搭建Nginx服务器以及SSL、反向代理和负载均衡的实现 目录 一、虚拟机下网络的网络配置 (2)

1、Bridged模式 (2) 2、NAT 模式 (3) 3、host-only 模式: (4) 4、作业环境网络拓扑图 (4) 二、Nginx的安装与配置 (5) 1、Nginx简介 (5) 2、安装前的环境准备 (5) 3、下载安装 (6) 4、控制Nginx服务 (6) 5、配置nginx (7) 6、负载测试 (9) 三、基于OpenSSL部署https网站 (9) 1、OpenSSL以及SSL/TLS协议简介: (9) 2、Linux下配置https (10) 3、SSL/TSL协议分析 (12) 四、用Nginx实现负载均衡和反向代理 (15) 1、反向代理的实现 (15) 2、负载均衡 (18) 一、虚拟机下网络的网络配置 1、Bridged模式 在桥接模式下,VMware虚拟机里的系统就像是局域网中的一台独立的主机,它可以访问同一个网段内任何一台机器,即可以相互ping通。

在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,就可以手工配置它的IP,DNS服务器,网关等信息,以实现通过局域网的网关或通过交换机访问外网。 图1 本地物理网卡和虚拟网卡通过虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位。 Vmware默认给虚拟系统提供了一个虚拟网卡(linux下默认为eth0设备),虚拟系统通过该网卡与外部通信。图中虚拟交换机由vmware提供,其默认设备名为VMnet0。如图1所示。 2、NAT 模式 NAT 即Network Address Translation 缩写,即网络地址转换,由NAT服务完成,在vmware里默认为VMnet8虚拟交换机,它将虚拟系统的IP地址转换成宿主机的IP地址,从而借用宿主机访问其他主机。使用NAT模式,也可以让虚拟系统通过宿主机器所在的网络来访问公网。 在这种模式下,虚拟系统是不能被LAN内其他PC访问的(宿主机可以,稍后讲),只能虚拟机以宿主机的名义访问LAN内的计算机。默认情况下NAT模式的虚拟系统的TCP/IP 配置信息由VMnet8(NAT)虚拟网络的DHCP服务器提供,因此采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。 图2 VMware Network Adepter VMnet8虚拟网卡的作用就是为主机和虚拟机的通信提供一个接口,即使主机关闭该网卡,虚拟机仍然可以连接到Internet,但是主机和虚拟机之间就不能互访了,还有访问局域网内的其他计算机,也是通过NAT服务实现。如图2所示

Nginx+PHP+MySQL详细配置(图)

Nginx是一个高性能的HTTP和反向代理服务器,同时还是IMAP/POP3/SMTP代理服务器,该程序由俄罗斯Rambler.ru 站点开发,Nginx因为性能稳定、低系统资源消耗而闻名,近几年Nginx在国内已经成炙热化状态,比如像腾讯、网易、51CTO、迅雷、当当网、51、人人网等诸多大型网站都已经使用Nginx来做Web服务器,所以我们要学会运用Nginx还是非常有必要的,下面我们一起来看一下Nginx是如何在Linux平台上搭建的 安装前首先使用yum命令安装、升级所需的程序库 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel ssse2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers 一、安装MySQLssss 目前web服务器已经很少有跑静态页面的,如果要跑动态网站那当然就离不开数据库,虽然在以前文章中有写MySQL是怎么安装的,但是感觉好久没装MySQL,现在只把步骤贴出来,就不做过多的讲解了 #useradd mysql #tar zxvf mysql-5.0.40.tar.gz #cd mysql-5.0.40 #./configure --prefix=/usr/local/mysql #make && make install #/usr/local/mysql/bin/mysql_install_db --user=mysql //初始化MySQL数据库 #chown -R mysql /usr/local/mysql/var #/usr/local/mysql/bin/mysqld_safe & //启动MySQL #/usr/local/mysql/bin/mysqladmin -u root password 123456 //设置MySQL密码 #cp support-files/https://www.360docs.net/doc/4e6053309.html,f /etc/https://www.360docs.net/doc/4e6053309.html,f #echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local

[全]Nginx配置文件上下文结构

Nginx配置文件上下文结构 1.Nginx配置文件上下文结构个Nginx的功能模块包含 系列的命令(cmd)以及与命令对应的处理函数(cmd→handler)。而Nginx 根据配置文件中的配 置指令就知道对应到哪个模块的哪个命令,然后调用命令对应的处理函数来处理。 一个Nginx配置文件包含若干配置项,每个配置项由配置指令和指令参数两部分组成,3个简单的Nginx配置项 Nginx配置文件中的配置指令如果包含空格,就需要用单引号或双引号引起来。指令参数如果 是由简单的字符串构成的,简单配置项就需要以分号结束;指令参数如果是复杂的多行字符串, 配置项就需要用花括号“{}”括起来。 Nginx配置项的具体功能与其所处的作用域(上下文、配置块)是强相关的。Nginx指令的作 用域配置块大致有5种,它们之间的层次关系。

5种Nginx指令的作用和它们之间的层次关系一个标准的Nginx配置文件的上下文结构如 下:

... #main全局配置块,例如工作进程数 events { #events事件处理模式配置块,例如IO读写模式、连接数等... } http #HTTP协议配置块 { ... #HTTP协议的全局配置块

server #server虚拟服务器配置块 一 { ... #server全局块location [PATTERN] #location路由规则配置块一 { ... } location [PATTERN] #location路由规则配置块二 { ... } } server #server虚拟服务器配置块二 { ...

nginx配置方案

WEB服务器安装方案 平台搭建环境: CentOS5.2 32/x86_64 GNU/Linux (32/64操作系统均通过,推荐使用64位操作系统) 一、系统安装 1. 系统分区建议 /boot 256M swap 2GB / 20GB /usr 40GB (用于安装软件) /data 剩余所有空间. 二、编译安装基本环境 1. 安装准备 1.1 系统约定 软件源代码包存放位置 /usr/local/src 源码包编译安装位置(prefix) /usr/local/software_ name 脚本以及维护程序存放位置 /usr/local/sbin MySQL 数据库位置 /data/mysql/(可按情况设置) 网站根目录/data/www/htdocs(可按情况设置) 网站日志根目录/data/www/logs(可按情况设置) Nginx运行账户www 1.2创建网站账号及相关存放目录 /usr/sbin/groupadd www /usr/sbin/useradd -g www www mkdir -p /data/www/html mkdir -p /data/www/log chown -R www:www /data/www/html chown -R www:www /data/www/log 1.3系统环境部署及调整 # tail -n100 /var/log/messages (检查有无系统级错误信息) # dmesg (检查硬件设备是否有错误信息) # ifconfig(检查网卡设置是否正确) # ping 192.168.95.1 (检查网络是否正常) install_software_name.sh //存放编译参数脚本习惯将所有编译脚本存放在install_software_name.sh便于升级和更新软件. 1.4定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 #crontab -e

Nginx安装及简单配置反向代理

Nginx安装及简单配置反向代理一.环境 VMware: Redhat(Server_A 部署nginx文件服务页面) WinServer(Server_B 部署IIS) Redhat(nginx代理服务器) 源码包: nginx-1.5.3.tar.gz openssl-1.0.1c.tar.gz (提供ssl加密协议) pcre-8.33.tar.gz (http rewrite模块:地址重写) zlib-1.2.8.tar.gz (gzip模块,传输数据打包)拓扑结构: 二.安装 1.安装基础编译环境 yum install -y gcc gcc-c++ make 2.安装

2.1解压 cd /tmp/soft/ tar xzfv nginx-1.5.3.tar.gz cd .. tar xzfv openssl-1.0.1c.tar.gz cd .. tar xzfv pcre-8.33.tar.gz cd .. tar xzfv zlib-1.2.8.tar.gz 2.2安装依赖 cd/tmp/soft/pcre-8.33 ./configure make&&make install cd/tmp/soft/zlib-1.2.8 ./configure make&&make install cd/tmp/soft/openssl-1.0.1c ./configure make&&make install 2.3安装nginx cd/tmp/soft/nginx-1.5.3 ./configure --prefix=/home/nginx --with-http_stub_status _module --with-http_ssl_module ./configure –help #查看配置概述 make&&make install 3.yum安装依赖包:

Nginx 配置文件nginx.conf的完整配置说明

#用户用户组 user www www; #工作进程,根据硬件调整,有人说几核cpu,就配几个,我觉得可以多一点 worker_processes 5; #错误日志 error_log logs/error.log; #pid文件位置 pid logs/nginx.pid; worker_rlimit_nofile 8192; events { #工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行 worker_connections 4096; } http { include conf/mime.types; #反向代理配置,可以打开proxy.conf看看 include /etc/nginx/proxy.conf; #fastcgi配置,可以打开fastcgi.conf看看 include /etc/nginx/fastcgi.conf; default_type application/octet-stream; #日志的格式 log_format main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #访问日志 access_log logs/access.log main; sendfile on; tcp_nopush on;

#根据实际情况调整,如果server很多,就调大一点 server_names_hash_bucket_size 128; # this seems to be required for some vhosts #这个例子是fastcgi的例子,如果用fastcgi就要仔细看 server { # php/fastcgi listen 80; #域名,可以有多个 server_name https://www.360docs.net/doc/4e6053309.html, https://www.360docs.net/doc/4e6053309.html,; #访问日志,和上面的级别不一样,应该是下级的覆盖上级的 access_log logs/domain1.access.log main; root html; location / { index index.html index.htm index.php; } #所有php后缀的,都通过fastcgi发送到1025端口上 #上面include的fastcgi.conf在此应该是有作用,如果你不include,那么就把fastcgi.conf的配置项放在这个下面。 location ~ .php$ { fastcgi_pass 127.0.0.1:1025; } } #这个是反向代理的例子 server { # simple reverse-proxy listen 80; server_name https://www.360docs.net/doc/4e6053309.html, https://www.360docs.net/doc/4e6053309.html,; access_log logs/domain2.access.log main; #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ {

Nginx配置文件(nginx.conf)配置详解

Nginx配置文件(nginx.conf)配置详解 usernginxnginx ; Nginx用户及组:用户组。window下不指定 worker_processes 8; 工作进程:数目。根据硬件调整,通常等于CPU数量或者2倍于CPU。 error_log logs/error.log; error_log logs/error.log notice; error_log logs/error.log info; 错误日志:存放路径。 pid logs/nginx.pid; pid(进程标识符):存放路径。 worker_rlimit_nofile 204800; 指定进程可以打开的最大描述符:数目。 这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。 现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535。 这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。 events { useepoll; 使用epoll的I/O 模型。linux建议epoll,FreeBSD建议采用kqueue,window下不指定。 补充说明: 与apache相类,nginx针对不同的操作系统,有不同的事件模型 A)标准事件模型 Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll B)高效事件模型 Kqueue:使用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使用双处理器的MacOS X 系统使用kqueue可能会造成内核崩溃。 Epoll:使用于Linux内核2.6版本及以后的系统。 /dev/poll:使用于Solaris 7 11/99+,HP/UX 11.22+ (eventport),IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。Eventport:使用于Solaris 10。为了防止出现内核崩溃的问题,有必要安装安全补丁。 worker_connections 204800; 没个工作进程的最大连接数量。根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行。每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为。 worker_processes*worker_connections

nginx配置详解

详情看配置文件 #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { includemime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; send; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on;

## 集群中的所有后台服务器的配置信息以及负责均衡 upstream local_tomcat { 名字local_tomcat很重要需要对应下面proxy_pass的地址一样 server localhost:8080; server localhost:8111; # server 192.168.0.11:8080 weight=10; 数值越大表示级别越高请求优先使用 # server 192.168.0.11:8081 weight=10; #server 192.168.0.12:8080 weight=10; # server 192.168.0.12:8081 weight=10; #server 192.168.0.13:8080 weight=10; #server 192.168.0.13:8081 weight=10; } server { #listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。 #server_name:表示监听到之后需要转到哪里去,这时我们直接转到本地,这时是直接到nginx文件夹内。 #location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里 #root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。

Nginx代理操作手册

1Nginx的作用 Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 nginx在1.9版本之后可以充当端口转发的作用,即:访问该服务器的指定端口,nginx就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者。nginx的TCP代理功能跟nginx的反向代理不同的是:请求该端口的所有流量都会转发到目标服务器,而在反向代理中可以细化哪些请求分发给哪些服务器;另一个不同的是,nginx做TCP代理并不仅仅局限于WEB的URL请求,还可以转发如memcached、MySQL等点到点的请求 2Nginx的安装 2.1在线安装 下载Nginx及相关组件 进入用户目录下载程序 下载相关组件 [root@localhost src]# wget https://www.360docs.net/doc/4e6053309.html,/download/nginx-1.10.2.tar.gz 省略安装内容... [root@localhost src]# wget

https://www.360docs.net/doc/4e6053309.html,/source/openssl-fips-2.0.10.tar.gz 省略安装内容... [root@localhost src]# wget https://www.360docs.net/doc/4e6053309.html,/zlib-1.2.11.tar.gz 省略安装内容... [root@localhost src]# wget ftp://https://www.360docs.net/doc/4e6053309.html,/pub/software/programming/pcre/pcre-8.40.tar.gz 省略安装内容... 安装c++编译环境,如已安装可略过 [root@localhost src]# yum install gcc-c++ 省略安装内容... 期间会有确认提示输入y回车 Is this ok [y/N]:y 省略安装内容... 安装Nginx及相关组件 openssl安装 [root@localhost src]# tar zxvf openssl-fips-2.0.10.tar.gz 省略安装内容... [root@localhost src]# cd openssl-fips-2.0.10 [root@localhost openssl-fips-2.0.10]# ./config && make && make install 省略安装内容... pcre安装 [root@localhost src]# tar zxvf pcre-8.40.tar.gz

Nginx负载均衡的详细配置及使用案例详解

Nginx负载均衡的详细配置及使用案例详解. 技术无止境, 我们仍需努力! 1,话不多说, 这里我们来说下很重要的负载均衡, 那么什么是负载均衡呢? 由于目前现有网络的各个核心部分随着业务量的提高,访问量和数据流量的快速增长,其处理能力和计算强度也相应地增大,使得单一的服务器设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,这样将造成现有资源的浪费,而且如果再面临下一次业务量的提升时,这又将导致再一次硬件升级的高额成本投入,甚至性能再卓越的设备也不能满足当前业务量增长的需求。 针对此情况而衍生出来的一种廉价有效透明的方法以扩展现有网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性的技术就是负载均衡(Load Balance)。 2, 负载均衡的种类 1)一种是通过硬件来进行解决,常见的硬件有NetScaler、F5、Radware 和Array等商用的负载均衡器,但是它们是比较昂贵的 2)一种是通过软件来进行解决的,常见的软件有LVS、Nginx、apache 等,它们是基于Linux系统并且开源的负载均衡策略.

3, 这里我们只来说Nginx(其他的大家有兴趣可以自行查阅相关文档) Nginx(发音同engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev(伊戈尔·西索夫)所开发,供俄国大型的入口网站及搜索引擎Rambler(漫步者)(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:新浪、网易、腾讯等。 优点: 1:可运行linux,并有 Windows 移植版。 2:在高连接并发的情况下,Nginx是Apache服务器不错的替代品Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达50,000 个并发连接数的响应 4, 创建两台Nginx服务器 由于自己在自己电脑上搭建, 所以现在只模拟搭建两台Nginx服务器. 负载均衡的功能: 转发 故障移除

项目上线nginx详细配置

通过nginx+uwsgi部署django应用在ubuntu 安装python3-pip Sudo apt-get install python3-pip 安装虚拟环境和虚拟环境管理包 Sudo pip3 install virtualenv (报错的话需要把pip也安装一下) Sudo pip3 virtualenvwrapper 在~/.bashrc 添加 /home/liunx/.virtualenvs/mybaby/bin/python3 export WORKON_HOME=~/Envs source /usr/local/bin/virtualenvwrap per.sh source .bashrc 创建虚拟环境:mkvirtualenv EduOnline –p /usr /bin/python3

虚拟环境当中安装项目所依赖的包(mysqlclient会出一个问题,需要首先安装下面这个包) 我们可以通过 pip freeze > requirements.txt 将win dows的虚拟环境安装包相应信息导出来移动到ubuntu Pip3 install -r requirements.txt 在安装过程中my sqlclient会报错,按照下面两步走 sudo apt-get install libmysqlclient-dev pip install mysqlclient 数据库: Sudo apt-get install mysql-server 进入数据库创建自己的账户并且分配所有的权限,并且刷新权限,在配置文件当中bind 0.0.0.0 在ubuntu 当中创建我们用的数据库 eduonline,通 过windows的Navicat将windows数据库中的数据 传输到ubuntu当中 将我们的项目文件夹拖入到我们的虚拟环境当中,进入项目python manage.py runserver保证能拉起项目

Nginx反向代理服务器配置基础教程

Nginx反向代理服务器配置教程一,系统架构 二,Nginx安装 系统环境与组件: Centos 6.6 x64 nginx v1.92 gcc openssl-devel pcre-devel libevent 1,更换国内源 1)、下载新源及将本地源备份 # cd /etc/yum.repos.d/ # wget https://www.360docs.net/doc/4e6053309.html,/.help/CentOS6-Base-163.repo # mv CentOS-Base.repo CentOS-Base.repo.backup # mv CentOS6-Base-163.repo CentOS-Base.repo

2)、yum源更新 # yum clean all && yum makecache && yum update -y 3)、完成 2,安装依赖包 1) # yum -y install gcc # yum -y install openssl openssl-devel # yum -y install pcre-devel 检查安装结果命令: # rpm -qa |grep gcc 2)安装libevent libevent是一个事件触发的网络库,适用于windows、linux、bsd等多种平台,内部使用select、epoll、kqueue等系统调用管理事件机制。著名分布式缓存软件memcached也是libevent based,而且libevent在使用上可以做到跨平台,而且根据libevent官方网站上公布的数据统计,似乎也有着非凡的性能。官网下载地址:https://www.360docs.net/doc/4e6053309.html,/ 安装步骤: # cd ~ #进入用户主目录,软件包都保存在这里。 # wget https://www.360docs.net/doc/4e6053309.html,/project/levent/libevent/libevent-2.1/libevent-2.1.4-alpha.tar.gz # tar –xvf libevent-2.1.4-alpha.tar.gz # cd libevent-2.1.4-alpha # ./configure # make # make install 3,相关用户及目录建立 1)建立运行nginx的用户与用户组 # groupadd -r nginx # useradd -r -g nginx -s /bin/false -M nginx 2)建立安装nginx要用到的临时文件目录 #mkdir -p/var/tmp/nginx/proxy 4,Nginx安装 1)下载nginx-1.9.2.tar.gz,上传至/root目录。 # cd ~ # tar –xvf nginx-1.9.2.tar.gz # cd nginx-1.9.2

如何验证nginx配置文件是否正确

资源分享编程语言web前端web服务器操作系统数据库应用0 柳明的博客 资源在于分享,技术在于交流 上午好! 2013年3月21日 星期四手机号: 归属地: 运营商、地区面 值: 100元 50元 其他 30元售 价: 98元-99.6元手机充值现在的位置: 首页 > web服务器 > nginx > 正文 RSS 小 中 大 上篇 下篇 如何验证nginx配置文件是否正确 2012年11月28日 ? nginx , web服务器 ? 共 3904字 ? 暂无评论 ? 被围观 1,840 views+ 当我们进行nginx 配置文件的时候如何才能检测我们做的是否正确呢?其实很简单,下面就向大家介 绍有关nginx 配置文件正确与否的检测方法。希望大家在以后的使用中有所收获。 检测nginx配置文件是否正确: 1. /usr/local/nginx/sbin/nginx -t -c nginx.conf 2. -c 配置文件路径 3. -g Set global directives. (version >=0.7.4)

4. -t 检测文件是否正确不执行 5. -v Print version. 6. -V Print nginx version, compiler version and configure 7. parameters. 编译时如果使用了–with-debug编译,还可以使用error_log file [ debug_core| debug_http | debug_event …] 来获得debug信息 通过信号对 Nginx配置文件 进行控制,Nginx配置文件 支持下表中的信号: 信号名 作用描述 TERM, INT 快速关闭程序,中止当前正在处理的请求 QUIT 处理完当前请求后,关闭程序 HUP 重新加载配置,并开启新的工作进程,关闭就的进程,此操作不会中断请求 USR1 重新打开日志文件,用于切换日志,例如每天生成一个新的日志文件 USR2 平滑升级可执行程序 WINCH 从容关闭工作进程 有两种方式来通过这些信号去控制 Nginx配置文件,第一是通过 logs 目录下的 nginx.pid 查看当前运行的 Nginx 的进程 ID,通过 kill – XXX来控制 Nginx,其中 XXX 就是上表中列出的信号名。如果您的系统中只有一个 Nginx 进程,那您也可以通过 killall 命令来完成,例如运行 killall – s HUP nginx 来让 Nginx 重新加载配置。 配置: 1. use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; 2. FreeBSD使用kqueue,Linux选epoll. 3. worker_connections number 每个worker的最大连接数 4. Maxclient = work_processes * worker_connections

相关文档
最新文档