初识Nginx及编译安装Nginx

初识Nginx及编译安装Nginx

环境说明:

系统版本    CentOS 6.9 x86_64

软件版本    nginx-1.12.2

1、什么是Nginx

Nginx因具有高并发(特别是静态资源)、占用系统资源少等特性,且功能丰富而逐渐流行起来。

    从软件大的功能应用方面,Nginx不但是一个优秀的Web服务软件,还可以具有反向代理负载均衡功能。在反向代理负载均衡功能方面,它类似于大名鼎鼎的LVS负载均衡以及Haproxy专业代理软件,但是Nginx部署起来更为简单、方便;在缓存服务方面,它又类似于squid等专业的缓存服务软件。

    Nginx可以运行在Unix,Linux、BSD、Mac OSX、Solaris,以及Microsoft Windows等操作系统中,随着Nginx在国内很多大型 站的稳定高效运行,近两年也逐渐被越来越多的中小型 站所使用。当前流行的Nginx Web组合被称为LNMP或LEMP(即Linux+Nginx+MySQL+PHP),其中LEMP里的E取自Nginx(”engine x”)

Nginx官 http://nginx.org/en/

淘宝 基于Nginx做二次开发的叫Tengine    http://tengine.taobao.org/

 

2、Nginx软件使用排名

Web Server软件市场https://w3techs.com/technologies/overview/web_server/all

6.6 如何正确选择Web服务器

    虽然国内很多人都在使用Nginx,但是Apache,Lighttpd这两个Web server同样非常强大实用,尤其是Apache,仍旧是到目前为止仍是全球使用最广泛的Web服务软件。

    在实际工作中,我们需要根据业务需求来选择合适的业务服务软件,有关Web服务的选择建议是:

    静态业务:若是高并发场景,尽量采用Nginx或Lighttpd,首选Nginx。

    动态业务:理论上采用Nginx和Apache均可,建议选择Nginx,要避免相同业务服务软件多样化,额外增加维护成本,动态业务可以由Nginx兼做前端代理,再根据页面元素的类型或者目录,向后转发到后端相应的服务器进行处理。

    如果既有静态业务又有动态业务,就采用Nginx。

    如果并发不是很大,又对Apache很熟悉,采用Apache也是可以的,Apache2.4版本也很强大,并发连接数也有所增加,总的来说,在满足需求的前提下,先选择自己最擅长的软件,若看上了更好的软件,可在掌握新软件之后逐步替换。虽然动态和静态业务都倾向于Nginx,但是大前提是要熟练掌握Nginx。切记企业工作中不要盲从,这可能最终会导致自己无法控制给企业带来灾难的恶果。

 

7、编译安装Nginx

7.1 创建目录

mkdir -p /service/tools

mkdir /application

cd /service/tools

wget http://nginx.org/download/nginx-1.12.2.tar.gz    下载或者上传nginx包

7.2 解压tar zxvf nginx-1.12.2.tar.gz

7.3 编译安装

yum install gcc gcc-c++ glibc -y        #安装编译器

yum install pcre-devel zlib-devel openssl-devel –y        #装pcre为了重写rewrite提供正则表达式库,装zlib为了gzip提供数据压缩用的函数库,装openssl为 Nginx 模块(如 ssl )提供密码算法、证书以及 SSL 协议等功能

C语言源码包,需要编译才能使用

编译安装三部曲

  1. ./configure(指定编译参数:安装目录及版本)

cd nginx-1.12.2

./configure –prefix=/application/nginx-1.12.2 –pid-path=/var/run/nginx.pid –user=nginx –group=nginx –with-http_ssl_module

./configure -help    #查看帮助

生成Makefile文件

  1. make

make是用来编译的,它从Makefile中读取指令,然后编译

cc -c -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules

        -o objs/src/http/modules/ngx_http_geo_module.o

        src/http/modules/ngx_http_geo_module.c

  1. make install

make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置

[root@Web01 nginx-1.12.2]# cd /application/nginx-1.12.2/

[root@Web01 nginx1.12.2]# ls -1

conf        #配置文件

html        # 站html文件

logs        #日志

sbin        #二进制的执行文件

7.4 配置

创建软链接

ln -s /application/nginx-1.12.2 /application/nginx

ln -s /application/nginx/sbin/nginx /usr/bin/

创建用户useradd -M -s /sbin/nologin -r -u 88 nginx

-M 不创建用户的HOME目录

-s shell 指定默认登录shell

-r 创建系统账户

-u uid 为账户指定一个唯一的UID

conf目录

fastcgi.conf        配合php

uwsgi_params        配合python

nginx.conf        主配置文件

mime.types        多媒体资源类型配置文件

最小化配置文件

grep -Ev ‘^$|#’ nginx.conf.default >nginx.conf

[root@Web01 conf]# grep -Ev ‘^$|#’ nginx.conf.default >nginx.conf

[root@Web01 conf]# cat nginx.conf

worker_processes 1;        #工作进程数

events {        #event模块

worker_connections 1024;        #默认工作连接数

}

http {            #http模块,nginx核心模块

include mime.types;    #加载的多媒体资源类型配置文件

default_type application/octet-stream;    #默认类型(16进制)

sendfile on;    #优化配置选项

keepalive_timeout 65;        #长连接超时时间65秒

server {

listen 80;    #默认监听的端口

server_name localhost;    # 站域名

location / {    # 站站点根目录位置

root html;    # 站文件

index index.html index.htm;    # 站首页

}

error_page 500 502 503 504 /50x.html;        #错误页面500,502.503.504返回50x.html

location = /50x.html {

root html;

}

}

}

7.5 启动

/application/nginx/sbin/nginx –t            #语法检查并测试

/application/nginx/sbin/nginx            #启动

/application/nginx/sbin/nginx -s reload    #平滑重启,不影响用户访问

/application/nginx/sbin/nginx -s stop        #关闭

/application/nginx/sbin/nginx -V            #查看版本及安装的模块

启动后会生成几个temp目录

编译安装Nginx完成

 

相关资源:实例讲解分布式缓存软件Memcached的Java客户端使用-其它代码类…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年5月21日
下一篇 2018年5月21日

相关推荐