设为首页 收藏本站
查看: 1164|回复: 0

[经验分享] 初识Nginx——nginx的编译、安装及特点(一)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-12-29 09:19:37 | 显示全部楼层 |阅读模式
一、Nginx简介
    nginx是一个轻量级的服务器软件,目前世界排名第三,第一占据大部分的市场份额的是apache,第二的是微软公司的IIS站的比重大约是23%。nginx自开发出来04年公布出来市场份额逐年上升,所拥有的功能是前两者都没有的,而且还能与之互补,所以很有必要认真研究一番。


    Nginx是一款web服务器反向代理服务器及电子邮件代理服务器。是在BSD-like协议下发行的。

    Nginx最突出的特点就是占有内存少,并发能力强。Nginx采用的是事件驱动结构,使用异步套接字来接受客户的请求,是一种非阻塞结构,不使用单独的线程处理,使用masker来控制worker来进行金城的控制,一个master对应一个或者多个worker,而且每个worker相应多个请求,很大一定程度上的减少了cpu和内存的消耗!

    Nginx 特性:

        1、模块化设计,较好的扩展性。不论是Nginx自己带的模块,还是第三方开发的模块,Nginx都能很好的支持。

        2、高可靠性,Nginx把线程分为主线程master和副线程worker,启动Nginx时候就会先启动master,然后master会生成一个或者多个worker线程去执行命令,而且由于这个模式的出现,Nginx可以实现版本平滑升级,而不用重新启动web服务。Nginx里面有多个master,新出现的master就会升级,正在运行的master不会升级,而会等到它所运行的进程结束,它会自动退出,等到下次启用的时候启用的master就是更新好的新版本master,master下面的worker升级原理也是这样的。

        3、较低的内存消耗,相比而言,Nginx有一万个keep-alive连接在Nginx 小号的内存大约为2.5M。归功于Nginx的架构太优秀了。

        4、支持热部署、可以实现不停机而更新配置文件、更新日志文件、更新服务器程序版本。

Nginx基本功能:
    提供静态资源的web服务器,能缓存打开的文件,描述符

    支持http、smtp pop3协议的反向代理服务器

    支持缓存、负载均衡

    支持fastCGI(fpm)

    支持高度模块化机制,而非DOS机制,过滤zip、ssi及图像大小调整。

    支持SSL


Nginx的扩展功能
    支持基于名称和IP的虚拟主机

    支持keep-alive

    支持平滑升级

    支持url rewrite(地址重写)
    支持使用日志缓冲区提高日志存储功能 ,定制访问日志
1
<br>



    支持路径别名

    支持速率限制

    支持基于IP及用户的访问控制

    支持并发数限制


Nginx 1.6.2版本编译安装
    从官方网站或者社区中下载源码包并解压到/usr/src目录下  tar xf nginx-1.6.2.tar.gz -C /usr/src
    避免编译过程中发生错误 ,用yum安装Development Tools和Server Platform Development包组
    添加Nginx系统组:groupadd -r nginx

    添加nginx系统用户:useradd -g nginx -r nginx

    cd至源码解压的目录下,然后编译安装
./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module --with-http_mp4_module --http-client-body-temp-path=/var/tmp/nginx/client --http-proxy-temp-path=/var/tmp/nginx/proxy --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi

    如果出现错误大部分原因就是有些--devel的开发包没有安装,可以根据提示把开发包安装进去。

    然后 make && make install

    此时的Nginx是开机没有启动的

    那么下面介绍让Nginx开机启动

    新建文件/etc/rc.d/init.d/nginx,内容如下:

   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
nx - this script starts and stops the nginx daemon
#
# chkconfig:   - 85 15
# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server
# processname: nginx
# config:      /etc/nginx/nginx.conf
# config:      /etc/sysconfig/nginx
# pidfile:     /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/etc/nginx/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
make_dirs() {
   # make required directories
   user=`nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
   options=`$nginx -V 2>&1 | grep 'configure arguments:'`
   for opt in $options; do




    将服务脚本的权限设置为可执行 chomd +x /etc/rc.d/init.d/nginx

    将服务加入服务列表中,并设置为开机自启动:chkconfig --add nginx && chkconfig nginx on

    测试启动nginx:service nginx start



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-39529-1-1.html 上篇帖子: 实战Nginx(6)-ssl模块简单应用 下篇帖子: Nginx相关基础配置详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表