nginx介绍及安装

Nginx简介

  没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器。基于REST架构风格,以统一资源描述符(Uniform Resources Identifier)URI或者统一资源定位符(Uniform Resources Locator)URL作为沟通依据,通过HTTP协议提供各种网络服务。

  然而,这些服务器在设计之初受到当时环境的局限,例如当时的用户规模,网络带宽,产品特点等局限并且各自的定位和发展都不尽相同。这也使得各个WEB服务器有着各自鲜明的特点。

  Apache的发展时期很长,毫无争议的世界第一大web服务器。它有着很多的优点:稳定、开源、跨平台等等,不过也是因为它出现的时间太长了,它兴起的年代,互联网产业远远比不上现在。所以它被设计为一个重量级的。它不支持高并发的服务器。在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。

这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。

  Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器也是一个 IMAP/POP3/SMTP 代理服务器
在高连接并发的情况下,Nginx是Apache服务器不错的替代品。
然后呢,Igor Sysoev将Nginx代码开源,并且赋予自由软件许可证

为什么要用nginx

  • 轻量级,配置简单
  • Nginx使用基于事件驱动架构,使得其可以支持数以百万级别的TCP连接
  • 内存消耗少
  • 作为负载均衡成本低廉
  • 高度的模块化和自由软件许可证使得第三方模块层出不穷
  • Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris,AIX,Mac OS等操作系统上
  • 这些优秀的设计带来的是极大的稳定性
  • 支持热部署

附一些优点的详细介绍

Nginx架构

 

安装

系统平台:CentOS Linux release 7.0.1406 (Core) 64位

yum安装

1、安装nginx 源

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装后可以看到/etc/yum.repos.d/ 目录中多了nginx.repo 的文件。

2、执行安装

yum install -y nginx

3、Nginx默认路径

# rpm -ql nginx/etc/nginx   # 配置路径/etc/nginx/nginx.conf   # 默认配置文件/usr/share/nginx/html   # 默认站点位置
/usr/share/nginx/html/50x.html
/usr/share/nginx/html/index.html   # 默认首页文件/var/log/nginx    #默认日志位置

4、常用命令

获取帮助:nginx -h

启动:nginx

测试配置的正确性:nginx -t

优雅重启:nginx -s reload

查看nginx进程:ps -ef | grep nginx

停止:nginx -s stop

源码安装

1、安装依赖

编译工具及库文件

yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel

PCRE 作用是让 Nginx 支持 Rewrite 功能。

yum install -y pcre-devel

2、添加用户

useradd -M -s /sbin/nologin www

3、下载&解压

下载地址:http://nginx.org/download/nginx-1.16.0.tar.gz

[root@master tools]# wget http://nginx.org/download/nginx-1.16.0.tar.gz
[root@master tools]# tar -zxvf nginx-1.16.0.tar.gz

4、配置编译

配置

[root@master nginx-1.16.0]# ./configure --prefix=/application/nginx-1.16.0 --user=www --group=www --with-http_stub_status_module --with-http_ssl_module
编译后查看是否成功:echo $?
返回值为0表示成功
# 编译参数说明
--prefix 表示指定软件安装到哪个目录中,指定目录不存在会自动创建 --user/--group nginx工作进程由哪个用户运行管理 --with-http_stub_status_module 启动nginx状态模块功能(用户访问nginx的网络信息) --with-http_ssl_module 启动https功能模块
更多配置选项:https://www.cnblogs.com/felixzh/p/6283791.html

编译并安装:

[root@master nginx-1.16.0]# make && make install

安装文件

5、创建软链接

[root@master application]# ln -s /application/nginx-1.16.0/ /application/nginx
[root@master application]# ll
total 0
lrwxrwxrwx  1 root root  26 Aug  3 18:10 nginx -> /application/nginx-1.16.0/
drwxr-xr-x 11 root root 142 Aug  3 18:10 nginx-1.16.0

如果要简化配置文件,去掉注释项

egrep -v "#|^$" nginx.conf.default >nginx.conf

6、添加开机启动

编辑服务文件

vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
#PIDFile=/run/nginx.pid
ExecStartPre=/application/nginx/sbin/nginx -t
ExecStart=/application/nginx/sbin/nginx
ExecReload=/application/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

添加

systemctl enable nginx.service

7、完成安装

启动nginx服务并检查

启动
#systemctl start nginx.service

检查:
# ps -ef |grep nginx
root     31161     1  0 16:29 ?        00:00:00 nginx: master process /application/nginx/sbin/nginx
www      31162 31161  0 16:29 ?        00:00:00 nginx: worker process
root     31164 27991  0 16:29 pts/0    00:00:00 grep --color=auto nginx

# netstat -lntup |grep 80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      26548/nginx  

完成安装访问测试

猜你喜欢

转载自www.cnblogs.com/-abm/p/11293995.html
今日推荐