20150410--Lnmp+Nginx-02

目录

一、常用web服务器的介绍 1

二、nginx的了解 1

三、nginx特点 1

四、支持的操作系统: 2

五、nginx的安装 2

六、配置虚拟主机 3

七、nginx支持php 4

八、配置nginx expires缓存功能 6

1、整体配置有效期: 6

2、根据目录进行判断,添加expires功能 7

九、压缩配置: 7

九、配置负载均衡 9

一、常用web服务器的介绍

apache:功能完善,历史悠久

缺点:处理每一个php比较费资源,导致如果高并发时会太耗费服务器资源无法处理更多请求。

nginx省资源,省cpu,所以在高并发时能够处理更多的请求,高端能达到3万到5万的并发量。

二、nginx的了解

Nginx(”engine x”)是俄罗斯人编写的一款高性能的HTTP和反向代理服务器。Nginx是Apache服务器不错的替代品,它能够支持高达50000个并发连接数的响应,而内存,cpu等系统资源消耗却非常低,运行非常稳定。

在国内,已经有新浪博客,新浪播客,网易新闻,六间房,56.com.discuz!官方论坛,水木社区,豆瓣,海内SNS,迅雷在线等多家网站使用Nginx作为web服务器或反向代理服务器。

三、nginx特点

1、它可以高并发连接,官方测试能够支撑5万并发连接,在实际生产环境中可以支撑2到4万并发连接。

2、内存消耗少

Nginx+php(FastCGI)服务器再3万并发连接下,开启的10个Nginx进程消耗150MB内存(15MB*10=150MB)开启的64个php-cgi进程消耗1280MB内存(20MB*64=1280MB)

3、成本低廉

购买F5 BIG-IP ,NetScaler等硬件负载均衡交换机需要10多万甚至几十万人民币。而Nginx为开源软件,可以免费试用,并且可用于商业用途。

4、其他理由:

(1)配置文件非常简单:通俗易懂,即使非专业管理员也能看懂。

(2)支持 rewrite重写规则:能根据域名、URL的不同,将HTTP请求分到不同的后端服务器群组。

(3)内置的健康检查功能:如果nginx proxy后端的某台服务器宕机了,不会影响前端访问。

(4)节省带宽,支持gzip压缩。

(5)稳定性高:用于反向代理,宕机的概率微乎其微。

(6)支持热部署。在不间断服务的情况下,对软件版本升级。

四、支持的操作系统:

FreeBSD 3.x,4.x,5.x,6.x i386; FreeBSD 5.x,6.x amd64;

Linux 2.2,2.4,2.6 i386; Linux 2.6 amd64;

Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;

MacOS X (10.4) PPC;

Windows XP,Windows Server 2003和Windows 7等。

五、nginx的安装

1、下载软件,解压后,拷贝到指定的目录

2、以cmd 方式,进入到nginx下面执行start nginx开启nginx的服务

3、在浏览器输出服务器的ip地址,进行访问。

几个操作的命令:

start nginx开启nginx的服务

nginx –s reload  重新加载配置文件,没有关闭服务

nginx –s stop 停止nginx的服务

六、配置虚拟主机

每一个server段是一个配置的虚拟主机

server {

//具体的配置项

每一行用分号结束;

}

基于域名的虚拟主机:

在abc目录里面添加文件后,修改本地的hosts文件,进行访问。

基于端口的虚拟主机:

七、nginx支持php

在apache里面php是作为一个apache的模块启动工作的。

在nginx中,php是作为独立进程启动的。

当nginx中遇到php文件时,交给php进程来处理,

1、把php程序文件拷贝到指定的目录一般和nginx是同一级目录

2、对php程序文件进行配置。

打开php的程序目录,修改一份 php.ini文件。

把该文件修改成php.ini文件

3、配置php加载扩展库的配置

4、配置让php作为一个进程独立启动。

5、复制该三个文件到nginx目录中来。

start_nginx.bat该脚本文件是启动php独立进程和nginx的

stop_nginx.bat停止ph独立进程和nginx的。

配置start_nginx.bat文件要和php安装的目录一致。

6、修改nginx.conf配置文件,开启php的支持

配置完成后,直接双击start_nginx.bat文件。即可。

八、配置nginx expires缓存功能

1、整体配置有效期:

对于图片,css,js等元素更改机会较少,特别是图片,可以将图片设置在浏览器本地缓存365天,css,js缓存10天,这样可以提高下次打开用户页面加载速度,并节省大量带宽。此功能同apache的expires。这里通过location的功能,将需要缓存的扩展名列出来,然后指定缓存时间:

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

{

expires 365d;

}

2、根据目录进行判断,添加expires功能

location ~ ^/(js|css|)/ {

expires 360d;

}

九、压缩配置:

gzip on; 

#开启gzip压缩功能

gzip_min_length 1k;

#设置允许压缩的页面最小字节数,页面字节数从header头的content-length中获取。默认值是0,不管页面多大都进行压缩。建议设置成大于1k。如果小于1k可能会越压越大。

gzip_buffers 4 16k;

#压缩缓冲区大小。表示申请4个单位为16k的内容作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。

gzip_http_version 1.0;

#压缩版本(默认1.1,前端为squid2.5时使用1.0)用于设置识别http协议版本,默认是1.1,目前大部分浏览器已经支持gzip解压,使用默认即可。

gzip_comp_level 2;

#压缩比率。用来指定gzip压缩比,1压缩比量小,处理速度快;9压缩比量大,传输速度快,但处理最慢,也必将消耗cpu资源。

gzip_types text/plain application/x-javascript text/css application/xml;

#用来指定压缩的类型,“text/html”类型总是会被压缩。

gzip_vary on;

#vary header支持。该选项可以让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过nginx压缩的数据。

要注意:需要和不需要压缩的对象

(1)大于1k的纯文本文件html,js,css,xml,html.

(2)图片,视频等不要压缩,因为不但不会减小,在压缩时消耗cpu和内存资源。

gzip on; 

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on; 

压缩之前:

压缩之后:

九、配置负载均衡

开始配置的步骤:

1、建立两个基于端口的虚拟主机,并根据目录创建对应的文件。

2、创建一个连接池

upstream 连接池的名字 {

server www.123.com:81;

server www.123.com:82;

}

3、具体的配置,虚拟主机

4、在hosts 文件里面配置好域名对应的ip地址,直接访问即可。

时间: 2024-08-03 14:43:25

20150410--Lnmp+Nginx-02的相关文章

Mac下安装LNMP(Nginx+PHP5.6)环境

Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew

Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

之前在Ubuntu12.04上搭建过PHP开发环境,按照这里http://budongzhenren.blog.51cto.com/2288320/991365安装的.但是系统换成14.04后,再用这个方法安装一直不成功,让我很郁闷,折腾了好久,后来才发现在12.04上安装Nginx,默认的网站根目录在 /usr/share/nginx/www,而在14.04上,默认的网站根目录是 /usr/share/nginx/html. 在Ubuntu14.04上搭建PHP环境的步骤参考这里:http:/

LNMP搭建02 -- 编译安装Nginx

[编译安装Nginx]   为了顺利安装Nginx,先安装下面这些: [CentOS 编译 nginx 前要做的事情] yum install gcc gcc-c++ kernel-devel yum -y install pcre-devel openssl openssl-devel [Ubuntu 编译 nginx 前要做的事情] apt-get install gcc apt-get install libpcre3 libpcre3-dev apt-get install zlib1g

Mac下安装LNMP(Nginx+PHP5.6)环境(转)

安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew install FORMULA 来安装所需要的依赖了.

lnmp (nginx php-fpm mysql) 环境部署——nginx

前言: 随着业务的发展,原有的单服务器架构已无法支撑现有业务的访问量,经研究决定,对现有服务做拆分,并对应用做横向扩展.目的是为了减轻服务集中造成的压力. 架构: 前端使用nginx作为web服务,后端使用php-fpm作为应用服务,数据库为mysql 应用服务可使用多台服务器做集群 准备工作: 系统为centos 6.8 x64 minimal 1 ip划分 web服务:172.16.10.0/24 应用服务:172.16.20.0/24 数据库服务:172.16.30.0/24 2 更新系统

LNMP(nginx防盗链,访问控制,解析php相关配置,Nginx代理,常见502问题)

一.nginx防盗链 nginx防盗链: [[email protected] ~]# vim /usr/local/nginx/conf/vhost/test.com.conf   添加以下内容 location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$ { expires 7d; valid_referers none blocked server_names  *.test.com ;      

部署LNMP Nginx+FastCGI 、 Nginx高级技术

案例1:部署LNMP环境案例2:构建LNMP平台案例3:地址重写1 案例1:部署LNMP环境1.1 问题 安装部署Nginx.MariaDB.PHP环境安装部署Nginx.MariaDB.PHP.PHP-FPM:启动Nginx.MariaDB.FPM服务:并测试LNMP是否工作正常.1.2 方案 在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB.PHP.PHP-FPM软件.操作过程中需要安装的软件列表如下:nginxmariadb.mariadb-server.mariad

LNMP - Nginx日志切割

随着访问量的增大,如果对日志置之不理,总有一天日志文件会撑爆磁盘:所以需要我们对日志进行切割,并且每隔一段时间删除一些旧日志,防止日志无休无止的占用磁盘的空间. 可以通过写一个shell脚本自动化切割,比如每天凌晨00:00把昨天的日志进行归类重命名: # cd /usr/local/sbin # vim nginx_logrotate.sh 写入以下脚本: #! /bin/bash d=`date -d "-1 day" +%F` [ -d /tmp/nginx_log ] || m

LNMP - Nginx配置防盗链

配置防盗链的目的:当别的网站盗用了我们网站的图片,视频等文件资源,放到他们自己的网站上去,一方面这属于无耻的盗窃行为,另一方面在并发量很大的情况下势必会无端增加我们网站的流量,增加服务器的负载. 解决办法:与Apache一样,Nginx也可以限制referer # cd /usr/local/nginx/conf/vhosts # vim test.conf server { listen 80; server_name www.test.com; index index.html index.

LNMP - nginx禁止指定user_agent

user_agent用来识别访问者的操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码比如我们的服务器网站,会被一些搜索引擎的爬虫程序访问,这对服务器压力造成了一定的影响.我们就可以根据爬虫的user_agent标示,来禁止掉它访问网站. 1.修改配置文件 [[email protected] ~]# vim /usr/local/nginx/conf/vhosts/test.conf server{    listen 80;    server_name www.test.com