当前位置:文档之家› CentOS6.5 64位 Tomcat7 JDK1.7 Nginx镜像使用手册

CentOS6.5 64位 Tomcat7 JDK1.7 Nginx镜像使用手册

CentOS6.5 64位 Tomcat7 JDK1.7 Nginx镜像使用手册
CentOS6.5 64位 Tomcat7 JDK1.7 Nginx镜像使用手册

CentOS6.5 64位Tomcat7 JDK1.7 Nginx镜像使用手册

1镜像环境说明

操作系统:CentOS 6.5 64位

JAVA运行环境(CentOS6.5 64位| Tomcat7 | JDK1.7 | Nginx)

软件版本详细:

●Nginx1.9.2

●Tomcat7.0.62

●JDK1.7.80

●MySQL5.6.25

●Redis3.0.2

●Memcached1.4.24

●jemalloc3.6.0

●Pure-FTPd1.0.41

功能亮点:

基于阿里云一键安装包源码安装,安全、稳定、高效!

1. 源码编译安装,细节安全优化,纯命令行,占用系统资源低

2. jemalloc优化MySQL、Nginx内存管理

3. Nginx+Tomcat的组合,动静分离,性能更加高效,适用于访问量要求较高的站点

4. Tomcat以一般用户运行、隐藏版本号等,增强安全性

5. 交互添加Nginx虚拟主机,方便快捷

6. 菜单式FTP账号管理脚本,轻松建立ftp虚拟用户

7. 提供一键更改数据库root密码脚本

8. 提供在线Nginx、Redis升级脚本

2软件目录说明

软件安装目录:

MySQL:/usr/local/mysql

JDK:/usr/java/jdk1.7.0_80

Tomcat:/usr/local/tomcat

Nginx:/usr/local/nginx

Pureftpd:/usr/local/pureftpd

Redis:/usr/local/redis

Memcached:/usr/local/memcached

数据存储目录:

MySQL数据:/data/mysql

网站根目录:/data/wwwroot/https://www.doczj.com/doc/834011413.html, #添加虚拟主机会自动创建这个目录Web访问日志:/data/wwwlogs

默认ip直接访问内容对应根目录:/data/wwwroot/default

首页demo:http://IP地址

3MySQL数据库管理

3.1数据库默认root密码

cd /root/oneinstack #必须进入oneinstack目录下执行grep dbrootpwd options.conf#显示镜像MySQL默认root密码

3.2更改数据库root密码

数据库root密码必须更改,否则导致后果概不负责。

cd /root/oneinstack #必须进入oneinstack目录下执行./reset_db_root_password.sh

如下图:

3.3创建一个数据库

如:创建一个opencms的数据库

# mysql –u root –p

Enter password: #输入数据库的root密码

mysql> create database opencms;

mysql> show databases;#查看数据库,除jenkins数据库,其它3个为系统默认库,不能删除,如下图:

3.4删除一个数据库

mysql> drop database opencms;#删除opencms数据库

cd /root/oneinstack #必须进入oneinstack目录下执行

./pureftpd_vhost.sh #请勿bash ./pureftpd_vhost.sh(或者sh)这样执行如下图

5.1添加虚拟主机

cd /root/oneinstack #必须进入oneinstack目录下执行

./vhost.sh

上图中directory为网站根目录,脚本执行后会自动创建,部署网站时请将代码上传到该目录(目录、子目录和文件权限都为:www),对应Nginx配置文件路径为:

/usr/local/nginx/conf/vhost/https://www.doczj.com/doc/834011413.html,.conf (https://www.doczj.com/doc/834011413.html,为绑定的域名)

对应在Tomcat配置文件/usr/local/tomcat/conf/server.xml中自动添加:

5.2删除虚拟主机

删除虚拟主机,即删除相应配置文件和对应网站根目录即可。

删除https://www.doczj.com/doc/834011413.html,虚拟主机,请执行如下命令:

service tomcat stop

vi /usr/local/tomcat/conf/server.xml

删除

service tomcat start

rm –rf /usr/local/nginx/conf/vhost/https://www.doczj.com/doc/834011413.html,.conf

service nginx reload

rm –rf /data/wwwroot/https://www.doczj.com/doc/834011413.html,

6如何管理服务

重启Nginx: service nginx restart

重启MySQL: service mysqld restart

重启tomcat: service tomcat restart

重启Pure-Ftpd: service pureftpd restart

重启Redis: service redis-server restart

重启Memcached: service memcached restart

如果程序不需要启动某些服务,如Redis,可如下操作:service redis-server stop #停止redis服务chkconfig redis-server off #关闭开机自启动

7如何升级版本

cd /root/oneinstack #必须进入oneinstack目录下执行./upgrade.sh

8如何卸载

cd /root/oneinstack #必须进入oneinstack目录下执行./uninstall.sh#注意备份数据

9附录

9.1如何部署一个网站?

1.创建该网站所需的数据库,参考《创建一个数据库》

2.部署代码到网站根目录

注意:通过ftp上传代码不需要修改权限,默认已经是www;在服务器里面下载代码必须修改网站根目录及子、目录文件权限都为www。

如命令下(wget下载代码)部署一个opencms,如下步骤:

1.添加虚拟主机,参考《如何添加虚拟主机》

2.登录服务器(如:putty)

3.访问https://www.doczj.com/doc/834011413.html,,输入数据库地址(localhost),用户名(root),密

码(数据库root密码),完成。

9.2如何配置MySQL远程连接?

镜像生成后,为了安全考虑,仅允许云主机本机(localhost)连接MySQL,如果需要远程连接MYSQL,需要如下操作:

1.打开iptables 3306端口

vi /etc/sysconfig/iptables #在80端口下一行添加,如下

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

service iptables restart #重启iptables

2.MySQL授权

建议root用户只允许本地连接,远程连接新建一个帐号。

如:添加一个用户名为linuxeye,密码为123456,授权为% (%表示所有ip能连接,可以设置指定ip)对opencms数据库所有权限,命令如下

# mysql –uroot –p

mysql> grant all privileges on opencms.* to linuxeye@'%'identified by '123456'; mysql> flush privileges;

9.3如何将Web应用、访问日志和MySQL数据迁移至挂

载的数据盘中?

service tomcat stop #为保证数据一致性,先停止Tomcat

service mysqld stop #为保证数据一致性,停止MySQL数据库

mv /data /root/#备份Web应用,访问日志和mysql数据到root目录下

ls /root/data#确保此目录有如下3个目录mysql、wwwlogs、wwwroot

mkdir /data#创建挂载目录

分区、格式化、挂载如下:

分区:

格式化:

挂载:

vi /etc/fstab #开机自动挂载,添加如下行:

/dev/xvdb1 /data ext4 defaults 0 0

mount –a#读取/etc/fstab挂载

数据恢复:

cp -R /root/data/* /data/#恢复Web应用,访问日志和mysql数据到挂载目录下chown -R mysql.mysql /data/mysql#设置数据库数据权限

chown -R www.www /data/wwwroot /data/wwwlogs#设置网站和访问日志权限service mysqld start#启动数据库

service tomcat start#启动tomcat

9.4关于Redis、Memcached

Redis默认端口:6379

Memcached默认端口:11211

1.如果增加Redis最大内存大小?

vi /usr/local/redis/etc/redis.conf

maxmemory 1024000000 #单位字节,默认1G,可调整

service redis-server restart#重启生效

2.如果增加Memcached最大内存大小?

vi /etc/init.d/memcached

CACHESIZE=256 #单位M,默认256M,可调整

service memcached restart#重启生效

9.5关于防火墙(iptables)

默认情况下开通22(ssh)80、443(Nginx)21、20000:30000(FTP)

其它端口都拒绝,如下需要允许其它端口,请如下操作(如开启8080端口)

vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

如下图:

9.6更多

OneinStack:https://www.doczj.com/doc/834011413.html,

lnmp一键安装包:https://https://www.doczj.com/doc/834011413.html,/31.html

nginx源码分析

nginx源码分析 nginx源码分析(1)- 缘起 nginx是一个开源的高性能web服务器系统,事件驱动的请求处理方式和极其苛刻的资源使用方式,使得nginx成为名副其实的高性能服务器。 nginx的源码质量也相当高,作者“家酿”了许多代码,自造了不少轮子,诸如内存池、缓冲区、字符串、链表、红黑树等经典数据结构,事件驱动模型,http解析,各种子处理模块,甚至是自动编译脚本都是作者根据自己的理解写出来的,也正因为这样,才使得nginx比其他的web服务器更加高效。 nginx 的代码相当精巧和紧凑,虽然全部代码仅有10万行,但功能毫不逊色于几十万行的apache。不过各个部分之间耦合的比较厉害,很难把其中某个部分的实现拆出来使用。对于这样一个中大型的复杂系统源码进行分析,是有一定的难度的,刚开始也很难找到下手的入口,所以做这样的事情就必须首先明确目标和计划。 最初决定做这件事情是为了给自己一些挑战,让生活更有意思。但看了几天之后,觉得这件事情不该这么简单看待,这里面有太多吸引人的东西了,值得有计划的系统学习和分析。首先这个系统中几乎涵盖了实现高性能服务器的各种必杀技,epoll、kqueue、master-workers、pool、 buffer……,也涵盖了很多web服务开发方面的技术,ssi、ssl、proxy、gzip、regex、load balancing、reconfiguration、hot code swapping……,还有一些常用的精巧的数据结构实现,所有的东西很主流;其次是一流的代码组织结构和干净简洁的代码风格,尤其是整个系统的命名恰到好处,可读性相当高,很kiss,这种风格值得学习和模仿;第三是通过阅读源码可以感受到作者严谨的作风和卓越的能力,可以给自己增加动力,树立榜样的力量。 另一方面,要达到这些目标难度很高,必须要制定详细的计划和采取一定有效的方法。 对于这么大的一个系统,想一口气知晓全部的细节是不可能的,并且nginx 各个部分的实现之间关系紧密,不可能做到窥一斑而知全身,合适的做法似乎

手把手教你开发Nginx模块

手把手教你开发Nginx模块 前面的哪些话 关于Nginx模块开发的博客资料,网上很多,很多。但是,每篇博客都只提要点,无法"step by step"照着做,对于初次接触Nginx开发的同学,只能像只盲目的蚂蚁瞎燥急!该篇文章没有太多技术深度,只是一步一步说明白Nginx模块的开发过程。 开发环境搭建 工欲善其事,必先利其器。个人推荐Eclipse CDT 作为IDE,原因很简单,代码提示与补全功能很全,完胜Codeblock这类...相信与否,试过就知道。 在ubuntu下搭建开发环境: 安装GCC编译器 apt-get install build-essential 安装pcre/openssl/zlib开发库 apt-get install libpcre3-dev apt-get install libssl-dev apt-get install libzip-dev 必需安装nginx核心模块依赖的pcre,openssl,zilib开发库 安装JRE/Eclipse CDT apt-get install openjdk-8-jre wget http://ftp.yz.yamagata-u.ac.jp/pub/eclipse//technology/epp/downloads/release/neon/R/eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz && tzr -xzvf eclipse-cpp-neon-R-linux-gtk-x86_64.tar.gz 下载nginx源码 wget https://www.doczj.com/doc/834011413.html,/download/nginx-1.10.1.tar.gz && tar -xzvf nginx-1.10.1.tar.gz 配置CDT Build Environment 添加变量,值Nginx src下各模块路径,用冒号分隔,例如: /root/Workspace/nginx-1.10.1/src/core:/root/Workspace/nginx-1.10.1/src/event:/root/Workspace/nginx-1.10.1/src/http:/root/Workspace/nginx-1.10.1/src/mail:/root/Workspace/n ginx-1.10.1/src/stream:/root/Workspace/nginx-1.10.1/src/os/unix 添加环境变量,创建C项目时自动作为-I选项 image image Nginx模块编译流程 Nginx使用configure脚本分析环境,自动生成objs结果。哪么configure如何编译第三方模块?答案是--add-module指定第三方模块目录,并将目录存为$ngx_addon_dir环境变量。执行$ngx_addon_dir/config脚本,读取模块配置。在config中的环境变量分为2种:小写的本地环境变量,大写的全局环境变量。例如: ngx_addon_name=ngx_http_mytest_module

基于Nginx的Session-sticky技术的软件负载均衡方案原理和实施步骤v1.0-20130929

基于Nginx的Session-sticky技术的软件负载均衡方案原理和实施步骤 [一]、综述 (1)实现原理:用户请求到nginx,基于nginx的nginx-sticky-module模块的session sticky(会话粘滞)实现后端应用服务器的路由选择,再将用户请求提交到后端的tomcat/weblogic/websphere 应用处理并逆向反馈响应。 (2)技术选型: Nginx+ nginx-sticky-module+J2EE中间件(容器)。 (3)应用场景: 本解决方案是基于浏览器的Cookie机制,通过nginx的反向代理机制,将浏览器与后端应用服务器的访问映射关系,作为前端请求转发到实现某个会话内所有用户的请求都访问当相同的后端服务器。 [二]、安装步骤 创建www用户和组,以及主机需要的目录,日志目录 groupadd www useradd -g www www 一、依赖的程序 1. gzip module requires zlib library 2. rewrite module requires pcre library 3. ssl support requires openssl library 二、依赖的程序的安装的方法 1、zlib 现在最新的版本是zlib-1.2.5 官网下载地址:https://www.doczj.com/doc/834011413.html,/zlib-1.2.5.tar.gz $tar -xvzf zlib-1.2.5.tar.gz 2、 pcre现在的最新版本是pcre-8.02.tar.gz 官网下载地址:ftp://https://www.doczj.com/doc/834011413.html,/pub/software/programming/pcre/pcre- 8.02.tar.gz $tar -xvzf pcre-8.02.tar.gz $cd pcre-8.02 $./configure --prefix=/usr/local/pcre --enable-utf8 --enable-unicode-properties $ make && make install 3、openssl现在最新版本是openssl-1.0.0a.tar.gz 官网下载地址:https://www.doczj.com/doc/834011413.html,/source/openssl-1.0.0a.tar.gz $tar zvxf openssl-1.0.0.tar.gz $cd openssl-1.0.0 $./config --prefix=/usr/local/ssl-1.0.0 shared zlib-dynamic enable-camellia $make && make install 4、安装Nginx 1.0.0,这种方法./configure 要带很多参数,大家要注意。 官网下载地址:https://www.doczj.com/doc/834011413.html,/ $tar zvxf Nginx 1.0.0.tar.gz $cd Nginx 1.0.0 $./configure --prefix=/usr/local/nginx --with-http_gzip_static_module

Eclipse + nginx module + debug

Liunx下使用Eclipse 开发nginx module,进行单步调试 Author: chuantong.huang@https://www.doczj.com/doc/834011413.html, Date:2010-10-26 1)取Nginx最新代码: wget https://www.doczj.com/doc/834011413.html,/download/nginx-0.7.67.tar.gz tar -xvf nginx-0.7.67.tar.gz cd nginx-0.7.67 2)建立模块目录与代码 pwd # 进入Nginx源代码目录,如: /home/toon/workspace/nginx-0.7.67 mkdir ngx_module_echo vim ngx_module_echo/config 其内容为: ngx_addon_name=ngx_module_echo HTTP_MODULES="$HTTP_MODULES ngx_module_echo" NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_module_echo.c" CORE_LIBS="$CORE_LIBS " vim ngx_module_echo/ngx_module_echo.c 其内容: 参考nginx的echo模块代码,自己google下,或参考以下: https://www.doczj.com/doc/834011413.html,/p/ngx_ext.html 3)建立Makefile 利用nginx提供的configrue脚本生成Makefile文件: ./configure --without-http_rewrite_module --without-http-cache --add-module=/home/toon/workspace/nginx-0.7.67/ngx_module_echo/ --with-debug 注意:这里要指定moduel目录(与Nginx源码目录下),还要指定debug编译. BTW:Eclipse 中执行Build project时会执行make clean all,会删除Makefile,故此时应该再执行configure生成Makefile 可以先make一次,编译出objs/nginx文件。

nginx-0.8.38源码探秘

nginx-0.8.38源码探秘 先推荐几个研究nginx源码的好网址: https://www.doczj.com/doc/834011413.html,/kenbinzhang/category/603177.aspx https://www.doczj.com/doc/834011413.html,/p/nginxsrp/wiki/NginxCodeReview https://www.doczj.com/doc/834011413.html,/langwan/blog/category/%D4%B4%C2%EB%B7%D6%CE%F6 网上分析nginx源码的文章很多,但感觉分析的不够具体和完整,而且都是比较老的nginx版本。本源码分析基于nginx-0.8.38版本,力求做到更具体和更完整,这是一种自我学习,希望和对此有兴趣的朋友一起探讨,有不正确的地方,也请各位指正。 那么一切从main开始吧! ngx_get_options函数是main调用的第一个函数,比较简单,它负责分析命令行参数,将相应的值赋给对应的全局变量,其中: 1.ngx_prefix表示nginx的路径前缀,默认为/usr/local/nginx; 2.ngx_conf_file表示nginx配置文件的路径,默认为 /usr/local/nginx/conf/nginx.conf; 3.ngx_test_config表示是否开启测试配置文件,如配置文件的语法是否正确,配置文件是否可正确打开。 ngx_time_init函数格式化nginx的日志时间,包括 ngx_cached_err_log_time,ngx_cached_http_time, ngx_cached_http_log_time,ngx_cached_time。主要操作在ngx_time_update 内,先获取系统当前时间,与之前保存的时间比较(注意slot),如果已经过

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反向代理服务器的工作原理

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

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

NGINX 介绍

优点 Nginx性能概述 常见问题(FAQ) 安装Nginx 优点 Nginx性能概述 常见问题(FAQ) 安装Nginx 展开 nginx map Nginx 可以在大多数Unix like OS 上编译运行,并有Windows 移植版。目前Nginx 的1.0.0稳定版已发布,开发版本为0.9.x,稳定版为0.8.x,历史稳定版为 0.7.x,建议使用0.8系列作为生产版本。 Nginx 的源代码使用2-clause BSD-like license。 Nginx 是一个很牛的高性能Web和反向代理服务器,它具有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx 在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高

达50,000 个并发连接数的响应,感谢Nginx为我们选择了epoll and kqueue作为开发模型。 Nginx作为负载均衡服务器:Nginx 既可以在内部直接支持Rails 和PHP 程序对外进行服务,也可以支持作为 HTTP代理服务器对外进行服务。Nginx采用C进行编写,不论是系统资源开销还是CPU使用效率都比Perlbal 要好很多。 作为邮件代理服务器:Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last. fm 描述了成功并且美妙的使用经验。 Nginx 是一个安装非常的简单,配置文件非常简洁(还能够支持perl 语法),Bugs非常少的服务器:Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够不间断服务的情况下进行软件版本的升级。 编辑本段Nginx性能概述 HTTP基础功能 处理静态文件,索引文件以及自动索引; 反向代理加速(无缓存),简单的负载均衡和容错; FastCGI,简单的负载均衡和容错; 模块化的结构。过滤器包括gzipping, byte ranges, chunked responses, 以及 SSI-filter 。在SSI过滤器中,到同一个proxy 或者FastCGI 的多个子请求并发处理; SSL 和TLS SNI 支持; IMAP/POP3 代理服务功能: 使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端; 使用外部 HTTP 认证服务器认证用户后连接重定向到内部的SMTP 后端; 其他HTTP功能 基于名称和基于IP的虚拟服务器; Keep-alive and pipelined connections support;保持活动和支持管线连接; Flexible configuration;灵活的配置; Reconfiguration and online upgrade without interruption of the client processing;重构,未经客户处理中断在线升级;

nginx,开源协议

竭诚为您提供优质文档/双击可除 nginx,开源协议 篇一:开源协议 一.每个协议分别找出一个使用该协议的开源软件。 1.gpl,全称gnugeneralpubliclicense。它的主要内容为:只要在一个软件中使用(“使用”指类库引用或者修改后的代码)gpl协议的产品,则该软件产品必须也采用gpl协议,既必须也是开源和免费。这个协议就不太适合商用软件,或者准备使用gpl开源组件的商用项目。基于这个协议的项目,极大的提高了开源软件的数量。 采用这个协议的开源软件有:linux、mysql。 2.lgpl,全称gnulessergeneralpubliclicense次通用公共许可协议。lgpl允许商业软件通过引用类库的方式使用lgpl组件(不直接使用源代码),这样可以不需要开源商业软件的代码。但是如果要修改原始组件的代码,则涉及修改部分的代码和基于原来代码衍生的代码都必须采用lgpl协议。lgpl不适合以lgpl协议为基础的代码进行二次开发的商业软件,但是商用软件可以采用编译后的类库引用就不需要公开源代码了。

采用这个协议的开源软件有:jboss、Fckeditor、hibernate。3.bsd,全称berkeleysoftwaredistribution。这个协议允许使用者修改和重新发布代码,也允许使用或在bsd代码基础上开发商业软件发布和销售,因此是适用于商业软件的。 使用时还必须做到满足三个条件: 1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的bsd协议。 2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的bsd协议。3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 适用bsd协议的开源软件有:nginx、cruisecontrol、Redis。 4mit,源自麻省理工学院(massachusettsinstituteoftechnology,mit),又称x11 协议。mit与bsd类似,但是比bsd协议更加宽松,是目前最少限制的协议。这个协议唯一的条件就是在修改后的代码或者发行包包含原作者的许可信息。适用商业软件。使用mit 的软件项目有:jquery、node.js。 5.apachelicencevesion2.0,这个协议除了为用户提供版权许可之外,还有专利许

nginx中文解释

Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek https://www.doczj.com/doc/834011413.html, (I T运维专家网|集群架构|性能调优) 欢迎转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明. 首发时间: 2008-11-25 更新时间:2009-1-14 目录 一、Nginx 基础知识 二、Nginx 安装及调试 三、Nginx Rewrite 四、Nginx Redirect 五、Nginx 目录自动加斜线: 六、Nginx Location 七、Nginx expires 八、Nginx 防盗链 九、Nginx 访问控制 十、Nginx日志处理 十一、Nginx Cache 十二、Nginx 负载均衡 十三、Nginx简单优化 十四、如何构建高性能的LEMP环境 十五、Nginx服务监控 十六、常见问题与错误处理. 十七、相关资源下载 【前言】: 编写此技术指南在于推广普及NGINX在国内的使用,更方便的帮助大家了解和掌握NGINX 的一些使用技巧。本指南很多技巧来自于网络和工作中或网络上朋友们问我的问题.在此对 网络上愿意分享的朋友们表示感谢和致意!欢迎大家和我一起丰富本技术指南提出更好的建 议!请朋友们关注: https://www.doczj.com/doc/834011413.html, 技术分享社区! 互想学习共同进步! 一、Nginx 基础知识 1、简介 Nginx ("engine x") 是一个高性能的HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服 务器。Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。 更多的请见官方wiki: https://www.doczj.com/doc/834011413.html,/ 2、Nginx的优点 nginx做为HTTP服务器,有以下几项基本特性: 1) 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 2) 无缓存的反向代理加速,简单的负载均衡和容错. 3) FastCGI,简单的负载均衡和容错. 4) 模块化的结构。包括gzipping, byte ranges, chunked responses, 以及SSI-filter等filter。 如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不 需要相互等待。 5) 支持SSL 和 TLS SNI. Nginx专为性能优化而开发,性能是其最重要的考量, 实现上非常注重效率。它支持内核Poll模型, 能经受高负载的考验, 有报告表明能支持高达50,000 个并发连接数。 Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时, 也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。nginx官方表示保持10,000个没有活动的连接,它只占2.5M内存,所以类似DOS这 样的攻击对nginx来说基本上是毫无用处的。就稳定性而言, nginx比lighthttpd更胜一筹。 Nginx支持热部署。它的启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不 需要重新启动。你还能够在不间断服务的情况下,对软件版本进行进行升级。 Nginx采用master-slave模型, 能够充分利用SMP的优势,且能够减少工作进程在磁盘I/O的阻 塞延迟。当采用select()/poll()调用时,还可以限制每个进程的连接数。 Nginx代码质量非常高,代码很规范,手法成熟,模块扩展也很容易。特别值得一提的是强大

Nginx安装学习使用详细记录

前言: 选择Nginx的优点: Nginx 可以在大多数 Unix like OS 上编译运行,并有 Windows 移植版。 Nginx 的1.4.0稳定版已经于2013年4月24日发布,一般情况下,对于新建站点,建议使用最新稳定版作为生产版本,已有站点的升级急迫性不高。Nginx 的源代码使用 2-clause BSD-like license。 Nginx 是一个很强大的高性能Web和反向代理服务器,它具有很多非常优越的特性: 在高连接并发的情况下,Nginx是Apache服务器不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 50,000 个并发连接数的响应,感谢Nginx为我们选择了 epoll and kqueue作为开发模型。 1.1 执行安装 1.tar -xvf nginx-1.4. 2.tar.gz 2.cd nginx-1.4.2 3../configure --prefix=/usr/nginx --with-http_stub_status_module --with-debug --with -http_realip_module --with-http_ssl_module 4. 5. 6.[root@localhost nginx-1.4.2]# make install 7....... 8.test-d \'/usr/nginx/logs\'|| mkdir -p \'/usr/nginx/logs\' 9.test-d \'/usr/nginx/logs\'|| mkdir -p \'/usr/nginx/logs\' 10.test-d \'/usr/nginx/html\'|| cp -R html \'/usr/nginx\' 11.test-d \'/usr/nginx/logs\'|| mkdir -p \'/usr/nginx/logs\' 1.2 查看进程数 进程数是与top出来的cpu数量是一样的。在/usr/local/nginx/conf/nginx.conf配置文件里面的worker_processes参数。 worker_processes指明了nginx要开启的进程数,据官方说法,一般开一个就够了,多开几个,可以减少机器io带来的影响。据实践表明,nginx的这个参数在一般情况下开4个或8个就可以了,再往上开的话优化不太大。据另一种说法是,nginx开启太多的进程,会影响主进程调度,所以占用的cpu会增高。 1.[root@lb-net-2 ~]# ps -eaf|grep nginx 2.root 2221 1382 0 18:06 pts/0 00:00:00 grep nginx 3.root 16260 1 0 Jun18 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx 4.nobody 16261 16260 0 Jun18 ? 00:01:26 nginx: worker process 5.nobody 16262 16260 0 Jun18 ? 00:01:32 nginx: worker process 6.nobody 16263 16260 0 Jun18 ? 00:01:25 nginx: worker process 7.nobody 16264 16260 0 Jun18 ? 00:01:33 nginx: worker process 8.nobody 16265 16260 0 Jun18 ? 00:01:32 nginx: worker process 9.nobody 16266 16260 0 Jun18 ? 00:01:24 nginx: worker process 10.nobody 16267 16260 0 Jun18 ? 00:01:32 nginx: worker process 11.nobody 16268 16260 0 Jun18 ? 00:01:23 nginx: worker process

Nginx源代码分析

Nginx源代码分析 1.Nginx代码的目录和结构 nginx的源码目录结构层次明确,从自动编译脚本到各级的源码,层次都很清晰,是一个大型服务端软件构建的一个范例。以下是源码目录结构说明: ├─auto 自动编译安装相关目录 │├─cc 针对各种编译器进行相应的编译配置目录,包括Gcc、Ccc等 │├─lib 程序依赖的各种库,包括md5,openssl,pcre等 │├─os 针对不同操作系统所做的编译配置目录 │└─types ├─conf 相关配置文件等目录,包括nginx的配置文件、fcgi相关的配置等 ├─contrib ├─html index.html └─src 源码目录 ├─core 核心源码目录,包括定义常用数据结构、体系结构实现等 ├─event 封装的事件系统源码目录 ├─http http服务器实现目录 ├─mail 邮件代码服务器实现目录 ├─misc 该目录当前版本只包含google perftools包 └─os nginx对各操作系统下的函数进行封装以及实现核心调用的目录。2.基本数据结构 2.1.简单的数据类型 在core/ngx_config.h 目录里面定义了基本的数据类型的映射,大部分都映射到c语言自身的数据类型。 typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t; typedef intptr_t ngx_flag_t; 其中ngx_int_t,nginx_flag_t,都映射为intptr_t;ngx_uint_t映射为uintptr_t。 这两个类型在/usr/include/stdint.h的定义为: /* Types for `void *' pointers. */ #if __WORDSIZE == 64 # ifndef __intptr_t_defined

nginx错误处理方法

Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。Nginx 超越 Apache 的高性能和稳定性。 Nginx+Tomcat是目前主流的Java web架构,很多公司在使用,Nginx+Tomcat通过简单的配置,可以实现高性能的负载均衡,通过本文学习,可以实现Nginx+Tomcat 负载均衡。 工具资源 1、Java运行环境,JDK 2、压缩版下载 3、稳定版下载 本文基于win10进行配置 配置步骤 1、JDK环境配置略 2、Tomcat安装配置 请参考:一台服务器安装运行多个Tomcat及注册服务 本测试安装两个Tomcat,端口分别是8801和8802 安装配置完成后请确保每一个Tomcat可以正常访问 为了区分两个Tomcat,本文将第二个Tomcat的页面名称改为:Apache Tomcat/、Nginx配置 1.解压Nginx到D盘根目录

2. 3.修改Nginx配置 #user nobody; worker_processes 1; #工作进程的个数 #error_log logs/; #error_log logs/ notice; #error_log logs/ info; #pid logs/; events { worker_connections 1024; #单个进程最大连接数 } http { include ; #文件扩展名与文件类型映射表 default_type application/octet-stream; #默认文件类型 #access_log logs/ main;

NginWEB服务器架构设计解决方案精修订

N g i n W E B服务器架构设计解决方案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev 为俄罗斯访问量第二的站点开发的,它已经在该站点运行超过两年半了。Igor Sysoev在建立的项目时,使用基于BSD许可。 据说他当初是F5的成员之一,英文主页:。 俄罗斯的一些大网站已经使用它超过两年多了,一直表现不凡,相信想了解nginx的朋友都读过阿叶大哥的利用nginx实现负载均衡.直到2007年4月,俄罗斯大约有20%左右的虚拟主机是由nignx服务或代理的。Google在线安全博客中统计nginx服务或代理了大约所有Internet虚拟主机的 4%。而netcraft的统计显示,nginx服务的主机在过去的一年里以四倍的速度增长。短短的几年里,它的排名已跃进第9。(参见: Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡。其拥有匹配 Lighttpd的性能,同时还没有Lighttpd的内存泄漏问题,而且Lighttpd的mod_proxy也有一些问题并且很久没有更新。 因此我打算用其替代Apache应用于Linux服务器上。但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞。那么我们必须使用FastCGI方式来执行PHP程序。 现在,Igor将源代码以类BSD许可证的形式发布。Nginx因为它的稳定性、丰富的模块库、灵活的配置和低系统资源的消耗而闻名.业界一致认为它是+mod_proxy_balancer的轻量级代替者,不仅是因为响应静态页面的速度非常快,而且它的模块数量达到Apache的近 2/3。对proxy 和 rewrite模块的支持很彻底,还支持mod_fcgi、ssl、vhosts ,适合用来做mongrel clusters的前端HTTP 响应。 nginx做为HTTP服务器,有以下几项基本特性: 处理静态文件,索引文件以及自动索引;打开文件描述符缓冲. 无缓存的反向代理加速,简单的负载均衡和容错. FastCGI,简单的负载均衡和容错. 模块化的结构。包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。如果由FastCGI或其它代理服务器处理单页中存在的多个SSI,则这项处理可以并行运行,而不需要相互等待。 支持SSL 和 TLSSNI. Nginx专为性能优化而开发,性能是其最重要的考量,实现上非常注重效率。它支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。 Nginx具有很高的稳定性。其它HTTP服务器,当遇到访问的峰值,或者有人恶意发起慢速连接时,也很可能会导致服务器物理内存耗尽频繁交换,失去响应,只能重启服务器。例如当前apache一旦上到200个以上进程,web响应速度就明显非常缓慢了。而Nginx采取了分阶段资源分配技术,使得它的 CPU

Nginx源码分析

Nginx源代码分析 l00117893 1.Nginx代码的目录和结构 nginx的源码目录结构层次明确,从自动编译脚本到各级的源码,层次都很清晰,是一个大型服务端软件构建的一个范例。以下是源码目录结构说明: ├─auto 自动编译安装相关目录 │├─cc 针对各种编译器进行相应的编译配置目录,包括Gcc、Ccc等 │├─lib 程序依赖的各种库,包括md5,openssl,pcre等 │├─os 针对不同操作系统所做的编译配置目录 │└─types ├─conf 相关配置文件等目录,包括nginx的配置文件、fcgi相关的配置等 ├─contrib ├─html index.html └─src 源码目录 ├─core 核心源码目录,包括定义常用数据结构、体系结构实现等 ├─event 封装的事件系统源码目录 ├─http http服务器实现目录 ├─mail 邮件代码服务器实现目录 ├─misc 该目录当前版本只包含google perftools包 └─os nginx对各操作系统下的函数进行封装以及实现核心调用的目录。2.基本数据结构 2.1.简单的数据类型 在core/ngx_config.h 目录里面定义了基本的数据类型的映射,大部分都映射到c语言自身的数据类型。 typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t; typedef intptr_t ngx_flag_t; 其中ngx_int_t,nginx_flag_t,都映射为intptr_t;ngx_uint_t映射为uintptr_t。

LNMP源码安装详细笔记(Linux+Nginx+Mysql+php)

LNMP安装笔记 环境:mysql-5.1.59.tar.gz pcre-8.12.tar.gz nginx-1.1.6.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz 首先安装编译环境 yum –y install gcc gcc-c++ autoconf automake一般装完系统的都会有的 然后安装Nginx需要的一些库文件 Yum –y install zlib zlib-devel openssl openssl-devel pcre pcre-devel 如果装系统的时候安装了开发库,,这些装完系统就会有的 不过系统自带的pcre版本比较老,需要重新安装一下新的版本 1.首先安装Mysql Tar –zxvf mysql-5.1.59.tar.gz ./configure –prefix=/usr/local/mysql –with-charset=gbk –with-xcharset=all Make && make install Useradd mysql /usr/local/mysql/bin/mysql_install_db --user=mysql chown -R mysql /usr/local/mysql/var /usr/local/mysql/bin/mysqld_safe & /usr/local/mysql/bin/mysqladmin -u root password 123456 Cp support-files/https://www.doczj.com/doc/834011413.html,f /etc/https://www.doczj.com/doc/834011413.html,f Vim /etc/https://www.doczj.com/doc/834011413.html,f 在[client]下面加入 default-character-set=utf8 这样Mysql就能完全支持中文了 echo "/usr/local/mysql/bin/mysqld_safe &" >>/etc/rc.local 2.安装Nginx 安装Nginx之前,需要重新安装一下PRCE Tar –zxvf pcre-8.12.tar.gz ./configure Make && make install 开始安装Nginx Tar –zxvf nginx-1.1.6.tar.gz ./configure –prefix=/usr/local/nginx Make && make install echo "/usr/local/nginx/sbin/nginx" >>/etc/rc.local 这个时候Nginx就装好了,打开http://localhost测试 出现Welcome to nginx! 表示安装成功! 3.安装PHP

相关主题
文本预览
相关文档 最新文档