ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:1.47MB ,
资源ID:25771197      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25771197.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(八LNMP环境搭建.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

八LNMP环境搭建.docx

1、八LNMP环境搭建LEMP/LNMP安装及部署Nginx介绍Nginx (engine x) 是一个高性能的 HTTP 和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服1、Apache服务器和nginx的优缺点:我们之前大量使用Apache来作为HTTPServer。Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。1) 首先Apache对客户端的响应是支持并发的,运行httpd这个daemon进程之后,它会同时产生多个子进程/线程,每个子进程/线程分别对客户端的请求进行响应;Apache两种工作模式:是prefork模式与worker模式prefork每个子

2、进程只有一个线程,效率高但消耗内存大,是lunix下默认的模式;worker模式每个子进程有多个线程,内存消耗低,但一个线程崩溃会牵连其它同子进程的线程。2) 另外,Apache可以提供静态和动态的服务,例如对于PHP的解析不是通过性能较差的CGI实现的而是通过支持PHP的模块来实现的(通常为mod_php5,或者叫做apxs2)。3) 缺点:因此通常称为Apache的这种Server为process-based server ,也就是基于多进程的HTTPServer,因为它需要对每个用户请求创建一个子进程/线程进行响应;这样的缺点是,如果并发的请求非常多(这在大型门户网站是很常见的)就会需要

3、非常多的线程,从而占用极多的系统资源CPU和内存。因此对于并发处理不是Apache的强项。4) 解决方法:目前来说出现了另一种WebServer,在并发方面表现更加优越,叫做asynchronous servers异步服务器。最有名的为Nginx和Lighttpd。所谓的异步服务器是事件驱动程序模式的event-driven,除了用户的并发请求通常只需要一个单一的或者几个线程。因此占用系统资源就非常少。这几种又被称为lightweight web server。举例,对于10,000的并发连接请求,nginx可能仅仅使用几M的内存;而Apache可能需要使用几百M的内存资源。使用Apache来

4、作为HTTPServer的情况我这里不再多做介绍;上面我们介绍到Apache对于PHP等服务器端脚本的支持是通过自己的模块来实现的,而且性能优越。我们同样可以使用nginx或者lighttpd来作为HTTPServer来使用。nginx和Apache类似都通过各种模块可以对服务器的功能进行丰富的扩展,同样都是通过conf配置文件对各种选项进行配置。对于PHP等,nginx没有内置的模块来对PHP进行支持,而是通过FastCGI来支持的。nginx则没有自己提供处理PHP的功能,需要通过第三方的模块来提供对PHP进行FastCGI方式的集成。Nginx(发音engine x)专为性能优化而开发,

5、其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持3000050000个并发请求)。正因为如此,大量提供社交网站、新闻资讯、电子商务以及虚拟主机等服务的企业纷纷选择Ngnix来提供WEB服务。2、Nginx的安装及运行控制:目前Nginx的最新稳定版本为1.0.8,开发版本为1.1.6,其安装文件可以从官方网站http:/www.nginx.org下载,下面以稳定版为例,介绍nginx的安装和运行控制。编译安装Nginx准备工作:Yum源搭建好。装好gcc等软件防护统统关闭1)安装支持软件:Nginx的配置及运行需要pcre、zlib等软件包的

6、支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成。yum y install pcre-develYum y install zlib-devel2)创建运行用户、组:Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险。如:创建一个名为nginx的用户,不建立宿主目录,也禁止登录到shell环境。useradd -M s /sbin/nologin nginx3)编译安装nginx:释放nginx源码包Tar zxvf /tmp/nginx-1.0.8.tar.

7、gz C /lnmp-C 指定解压的目录编译前配置:./configure -prefix=/usr/local/nginx -user=nginx -group=nginx -with-http_stub_status_module注:配置前可以参考:./configure -help给出说明-prefix:设定Nginx的安装目录-user和group:指定Nginx运行用户和组-with-http_stub_status_module:启用http_stub_status_module模块以支持状态统计编译:Make 安装:Make install至此Nginx安装完成,为了使Nginx

8、服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行nginx命令就可以调用Nginx的主程序。ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ls -l /usr/local/sbin/nginx lrwxrwxrwx. 1 root root 27 8月 11 18:16 /usr/local/sbin/nginx - /usr/local/nginx/sbin/nginxNginx的运行控制:与apache的主程序httpd类似,Nginx的主程序也提供了-t选项用来对配置文件进行检查,以便找出不当或错误的配置。

9、配置文件nginx.conf默认位于安装目录下的conf/子目录中。若要检查位于其他位置的配置文件,可使用-c选项来指定路径。nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful启动、停止Nginx:直接运行nginx即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其他配置文件,需添加-c 配置文件路径选项来指定路

10、径。需要注意的是!,若服务器中已安装有httpd等其他WEB服务软件,应采取措施避免部突。Service httpd statushttpd :未被识别的服务nginx 直接执行nginx命令启动netstat tlun grep “:80”tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN通过检查Nginx程序的监听状态,或者在浏览器中访问此WEB服务(默认页面将显示Welcome to nginx!),可以确认Nginx服务是否正常运行。注意:要在防火墙上允许80端口的通信。iptables -I INPUT -p tcp -dport 80 -j ACCEPT /允许

11、80端口通信service iptables save /保存,规则或使用elinks浏览器(需安装elinks软件包。yum -y install elinks)停止Nginx服务:(在没添加脚本之前)less /usr/local/nginx/logs/nginx.pid /查看nginx进程PID#Killall -9 nginx当Nginx进程运行时,PID号默认存放在/usr/local/nginx/logs/目录下的nginx.pid文件中,因此若改用kill命令,也可以根据nginx.pid文件中的PID号来进行控制。启动关闭脚本为了使Nginx服务的启动、停止、重载等操作更加方

12、便,可以编写Nginx服务脚本,并使用chkconfig和service工具来进行管理,也更加符合RHEL系统的管理习惯。脚本内容如下:(脚本在电脑中,nginx) 精简版:#!/bin/bash# chkconfig:2345 99 28# description: Nginx Service Control Scripta=/usr/local/nginx/sbin/nginxb=/usr/local/nginx/logs/nginx.pidcase $1 instart) $a;stop) kill -s QUIT $(cat $b);restart) $0 stop $0 start;

13、*) echo error start | stop | restart | reload ;Esac注: 可以给脚本定义相应的注释,和提示注:通过kill或killall命令发送HUP信号表示重载配置, 用新的配置开始新的工作进程关闭旧的工作进程。QUIT信号表示退出进程,KILL信号表示杀死进程。通过-s选项指定信号种类。添加为系统服务。这样一来,就可以通过nginx脚本来启动、停止、重启、重载Nginx服务器了。service nginx start /启动service nginx stop /停止service nginx restart /重启3、配置文件nginx.conf:/u

14、sr/local/nginx/conf/nginx.conf在Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三大块内容,配置语句的格式为关键字值;(末尾以分号表示结束),以#开始的部分表示注释。1)全局配置由各种配置语句组成,不使用特定的界定标记。全局配置部分包括运行用户、工作进程数、错误日志、PID存放位置等基本设置。常用配置项:#user nobody;/运行用户,Nginx的运行用户实际是编译时指定的nginx,若编译时未指定则默认为nobodyworker_processes 2;/指定nginx启动的工作进程数量,建议按照cpu数目来

15、指定,一般为它的倍数worker_cpu_affinity 00000001 00000010;/为每个进程分配cpu,上例中将2个进程分配到两个cpu,当然可以写多个,或者将一个进程分配到多个cpuworker_rlimit_nofile 102400;/这个指令是指当一个nginx进程打开的最多文件数目,理论值应该是最多打开文件数(ulimit-n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n的值保持一致。(通过ulimit n 数值可以修改打开的最多文件数目)error_log logs/error.log; /全局错误日志文件的位置pid

16、logs/nginx.pid; /PID文件的位置2) I/O事件配置:使用events 界定标记,用来指定Nginx进程的I/O响应模型,每个进程的连接数等设置events use epool; /使用epool模型,对于2.6以上的内核,建议使用epool模型以提高性能worker_connections 4096; /每个进程允许的最多连接数(默认为1024),每个进程的连接数应根据实际需要来定,一般在10000以下,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections(每个进程工作数目*连接数),具体还要看服务器的硬件、带宽等。

17、3)HTTP配置使用http界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、连接保持、以及虚拟主机、PHP解析等一系列设置。其中大部分配置语句包含在子界定标记servier 内。http #设定mime类型,即conf/目录下的mime.types文件中的设定。include mime.types;default_type application/octet-stream;#设定日志格式log_format main $remote_addr - $remote_user $time_local$request $status $bytes_sent $http_referer $

18、http_user_agent $gzip_ratio;log_format download $remote_addr - $remote_user $time_local $request $status $bytes_sent $http_referer $http_user_agent $http_range $sent_http_content_range;#设定access logaccess_log logs/access.log main;sendfile on; /支持文件发送(下载)keepalive_timeout 65; /连接保持超时#设定虚拟主机server /用来

19、配置虚拟主机listen 80; /WEB服务的监听设置,可以采用IP地址:端口形式(1)server_name ;/网站名,称可以写多个名称,用空格分隔(2) location / /表示如何匹配后面的路径的 index index.html; /默认首页 root html; /网页根目录位置,默认为Nginx安装目录下的html/子目录,root语句用来设置特定访问位置的网页文档路径,根据需要可改为/var/www/html等其他路径。 (3)charset gb2312; /网页的默认字符集(4) 默认的是注释的,需要手动打开#设定本虚拟主机的访问日志access_log logs/.

20、access.log main;error_page 500 502 503 504 /50x.html; /内部错误的反馈页面location = /50x.html root html;Nginx的location基本语法:location =|*| /uri/ =表示做精确匹配 :为区分大小写匹配*: 为不区分大小写匹配! :和 !* 分别为区分大小写不匹配及不区分大小写不匹配正则表达式匹配,其中:文件及目录匹配,其中:-f 和 !-f 用来判断是否存在文件-d 和 !-d 用来判断是否存在目录-e 和 !-e 用来判断是否存在文件或目录-x 和 !-x 用来判断文件是否可执行示例1:l

21、ocation = / # 只匹配 / 查询。location / #匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先查询匹配示例2:location /images/ # 匹配任何以 /images/ 开头的任何查询并且停止搜索。任何正则表达式将不会被测试。示例3:location * .(gif|jpg|jpeg)$ # 匹配任何以 gif、jpg 或 jpeg 结尾的请求。4、状态统计及虚拟主机应用:Nginx内置了HTTP_STUB_STATUS状态统计模块,用来反馈当前的WEB访问情况。配置编译参数时可添加with-http_stub_stastus_

22、module来启用此模块。要使用Nginx的状态统计功能,除了启用内建模块以外,还需要修改nginx.conf文件,指定访问位置并打开stub_status配置。在http配置的server子配置内添加如下配置项注:location /tongji /匹配任何包含/tongji的任何查询stub_status on /打开状态统计功能Access_log off /关闭此位置的日志记录auth_basic nginx status 登录提示auth_basic_user_file /usr/loacl/nginx/.htpasswd /存用户密码的文件htpasswd -c /usr/loca

23、l/nginx/.htpasswd 用户名 /-c 为创建文件,以后将不用创建Nginx 支持为目录添加密码认证,使用apache 的 htpasswd 来创建密码文件(找不到htpasswd命令,请安装httpd,并且不启动服务)保存修改过的nginx.conf文件并重启nginx服务使修生效。nginx -t /检查语法错误新的配置生效后,在浏览器中访问Nginx服务器的/tongji网站位置(http:/web服务器IP/tongji)可以看到状态统计信息如上图所示:其中Active connections表示当前的活动连接数;而server accepts handledrequest

24、s表示已经处理的连接信息,三个数字依次表示已处理的连接数、成功的TCP握手次数、已处理的请求数.客户端地址访问控制:注:allow 允许规则,deny拒绝规则;规则的执行是按从上向下执行,匹配某条规则后将不再检查其他规则。2)虚拟主机:使用Nginx搭建虚拟主机服务器时,每个虚拟WEB站点拥有独立的server 配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。例如:要创建两个站点和a 为两个虚拟WEB主机分别建立根目录,并准备测试首页b 调整nginx.conf配置文件-域名虚拟主机配置两个server 区域,分别对应两个WEB站点,指定各自的网站名称、监听地址、网站根

25、目录、访问日志等信息,然后重载配置打开下方的三行的文档的注释信息,使其生效。在主配置文件当中添加两个虚拟主机的配置信息。修改Linux下和windows下的hosts文件,使其能正常解析域名。测试:使用浏览器分别通过和访问两个WEB站点(注意域名解析。测试时没有dns服务器,可以在客户及的hosts文件中添加主机ip FQDN C:WindowsSystem32Driversetchosts)5、LEMP架构及应用部署:就像构建LAMP平台一样,构建LEMP平台也需要LINUX服务器、MYSQL数据库、PHP解析环境,区别主要在于Nginx与PHP的协作配置上以编译方式安装Nginx(过程参照

26、上面相关介绍完成)安装MYSQL数据库-以编译方式安装首先安装yum -y install ncurses* 释放MYSQL的源码包:编译前配置:./configure -prefix=/usr/local/mysql -with-charset=utf8 -with-collation=utf8_general_ci -with-extra-charset=gbk.gb2313注:-with-charset:指定默认使用的字符集编码;-with-collation:指定默认使用的字符集校对规则,utf8_general_ci是适用于UTF-8字符集的通用规则;-with-extra-char

27、sets:指定额外支持的其他字符集编码。编译并安装MYSQL:优化调整:初始化数据库:启动MYSQL服务及为root用户设置密码:安装PHP解析环境: 较新版本(如5.3)的PHP已经自带FPM(fastCGI process manager,FastCGI进程管理器)模块,用来对PHP解析实例进行管理,优化解析效率,因此在配置PHP编译选项时应添加-enable-fpm以启用此模块。为了提高PHP解析效率,建议将相应版本的ZendGuardLander也装上释放PHP源码包:编译前配置:注:在RHEL6的64系统中按上面的配置项配置可能会报以下错误,如果要是报错的话请按如下方法解决:解决方法

28、:根据报错发现是因为libpng.so和libpng.a找不到,但libpng的相关软件包我已经安装了,如下图查询结果,发现libpng的包都安装了。补充:少libxml 用yum安装那为什么还报libpng.so和libpng.a找不到呢?要解决的问题就是它没找到,我安装了的,那我得去找找看它到底是放那里去了。执行下列命令,可以查找libpng.so在那里。通过上面的搜索其实就知道一些原因了,configure一般的搜索编译路径为/usr/lib/下,因为php默认就在/usr/lib/下找相关库文件,而x64机器上是在:/usr/lib64.这时你就可以直接把需要的库文件从/usr/lib

29、64中拷贝到/usr/lib/中去就可以了解决完后重新执行./configure进行编译前的配置如果报configure: error: libjpeg.(a|so) not found错误解决方法和上面的解决方法类似。具体操作如下:如果报下面错误usr/bin/install: cannot create regular file /usr/local/man/man1/cjpeg.1: No such file or directorymake: * install Error 1提示找不到目录。既然电脑找不到,咱们人脑可以找嘛,自己先创建先mkdir /usr/local/manmkdir /usr/local/man1 创建完了再来类似错误很多,方法也很多,我们得灵活应变,具体问题具体分析!编译并安装PHP:注:安装后的调整: 安装ZendGuardLander:(注:若RHEL6是64位系统,该软件得到其官网下载64位的相应软件包,若用32位的就会报错。下载地址:修改php.ini文件:在php.ini中添加如下配置配置Nginx支持PHP环境:若要让Nginx能够解析PHP网页,有两种方法可以选择;其一,充当中介,将访问PHP页面的WEB请求转交给其他服务器(LAMP)去处理;其二,通过使用PHP的FPM模块来调用本机的PHP环境如果选用FPM方式,则需要先启动

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

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