nginx相比于apache优缺点及编译安装,网页缓存

政林 2019-12-29 882浏览 0条评论
首页/正文
分享到: / / / /

nginx相比于apache优缺点及编译安装,网页缓存

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。在同类型的web服务器中表现较好,中国使用nginx网站用户有:百度BWS、新浪、网易、腾讯等。 Nginx官网: nginx:http://nginx.org/ RamBler:http://www.rambler.ru/ Rambler是俄罗斯的门户网站,也是俄罗斯的三大门户之一,在这里你可以了解俄罗斯社会的方方面面。严格意义来讲,Rambler应该是俄罗斯的行业分类网站,每天大约有800万人利用该网站查询相关信息,是俄罗斯当之无愧的第二大本土搜索引擎。 Tengine: Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。(可以这样理解:淘宝拿到了Nginx源代码之后,进行了功能的填充,优化等等,然后提交给Nginx官方,但是由于Nginx官方相应慢或者不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循GPL的原则上进行二次开发,于是就出了现在的Tengine这个版本)。

Nginx优缺点及原理

Nginx: nginx相对于apache的优点: 轻量级,同样起web 服务,相比 Apache,Nginx 在静态处理性能比 Apache 高 3倍上,工作在网络的7层之上,可以针对http应用做一些分流的策略,比如针对域名、目录结构,它的正则规则比HAProxy更为强大和灵活,这也是它目前广泛流行的主要原因之一,Nginx单凭这点可利用的场合就远多于LVS了,比apache 占用更少的内存及资源 ;高并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能;高度模块化的设计,编写模块相对简单;社区活跃,各种高性能模块出品迅速。 apache 相对于nginx 的优点: rewrite ,比nginx 的rewrite强大;模块超多,基本想到的都可以找到;少bug ,nginx 的bug 相对较多;超稳定 存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就apache 。nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。

apache

nginx

下载安装nginx 下载:http://nginx.org/en/download.html 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装,安装上传依赖包

yum install lrzsz gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl--devel python -y

rz上传到服务器 ,Nginx正式安装

tar xvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

创建nginx用户并加入nologin文件

useradd -s /sbin/noligin -M nginx 

开始预编译吗,安装

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_ssl_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --with-pcre

echo  $?

0 ​

make  &&  make install

echo  $?

0

如果没有报错,顺利完成后,最好看一下nginx的安装目录

whereis nginx

测试配置文件 安装路径下的

/usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

查看进程 ps -ef | grep nginx

启动服务:[root@localhost nginx]# /usr/local/nginx/sbin/nginx

停止服务:[root@localhost nginx]# /usr/local/nginx/sbin/nginx -s stop

expires缓存调优

缓存,主要针对于图片,css,js等元素更改机会比较少的情况下使用,特别是图片,占用带宽大,我们完全可以设置图片在浏览器本地缓存30d,这样用户第一次打开加载慢一点,第二次,就非常快了!缓存的时候,我们需要将需要缓存的拓展名列出来! Expires缓存配置在server字段里面

2、设置网页缓存(对静态资源过期时间设置) 修改配置文件vim /usr/local/nginx/conf/nginx.conf 在57行添加 location ~* .(ico|gif|bmp|jpg|jpeg|png|swf|js|css|mp3) { root html; expires 30d; } 修改完配置文件放一个图片到网站根目录下(/usr/local/nginx/html),然后重启服务,网页测试 -s reload

expire功能优点 (1)expires可以降低网站购买的带宽,节约成本 (2)同时提升用户访问体验 (3)减轻服务的压力,节约服务器成本,甚至可以节约人力成本,是web服务非常重要的功能。

使用yslow查看页面缓存时间,如下图表示成功

添加Nginx到系统服务

创建nginx启动命令脚本 vi /etc/init.d/nginx 复制插入以下内容, 注意修改PATH和NAME字段, 匹配自己的安装路径

#! /bin/bash 
# chkconfig: - 85 15 
PATH=/usr/local/nginx 
DESC="nginx daemon" 
NAME=nginx 
DAEMON=PATH/sbin/PATH/sbin/NAME 
CONFIGFILE=PATH/conf/PATH/conf/NAME.conf 
PIDFILE=PATH/logs/PATH/logs/NAME.pid 
SCRIPTNAME=/etc/init.d/NAMEset−e[−x"NAMEset−e[−x"DAEMON" ] || exit 0 
do_start() { 
DAEMON−cDAEMON−cCONFIGFILE || echo -n "nginx already running" 

do_stop() { 
DAEMON -s stop || echo -n "nginx not running"
   }
   do_reload() {
   $DAEMON -s reload || echo -n "nginx can't reload"
   }
   case "DAEMON -s stop || echo -n "nginx not running"   }   do_reload() {   $DAEMON -s reload || echo -n "nginx can't reload"   }   case "1" in 
start) 
echo -n "Starting DESC:DESC:NAME" 
do_start 
echo "." 
;; 
stop) 
echo -n "Stopping DESC:DESC:NAME" 
do_stop 
echo "." 
;; 
reload|graceful) 
echo -n "Reloading DESCconfiguration..."doreloadecho".";;restart)echo−n"RestartingDESCconfiguration..."doreloadecho".";;restart)echo−n"RestartingDESC: NAME"dostopdostartecho".";;∗)echo"Usage:NAME"dostopdostartecho".";;∗)echo"Usage:SCRIPTNAME {start|stop|reload|restart}" >&2 
exit 3 
;; 
esac 
exit 0

设置执行权限 chmod a+x /etc/init.d/nginx

注册成服务 chkconfig --add nginx

设置开机启动  chkconfig nginx on

查看nginx服务是否自动启动

shutdown -h 0 -r 重启

netstat -apn|grep nginx

对nginx服务执行停止/启动/重新读取配置文件操作

启动nginx服务

systemctl start nginx.service

停止nginx服务

systemctl stop nginx.service

重启nginx服务

systemctl restart nginx.service

重新读取nginx配置(这个最常用, 不用停止nginx服务就能使修改的配置生效)

systemctl reload nginx.service

点击这里给我发
消息
最后修改:2019-12-29 16:22:57 © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付

上一篇

发表评论

评论列表

还没有人评论哦~赶快抢占沙发吧~