Nginx简介与安装

Nginx简介与安装

1、Nginx简介

  Nginx是一个高性能Web服务器,除了Nginx之外还有Apache、Tomcat、Jetty等Web服务器。那么Nginx相对于其它Web服务器有什么优势呢?
  a、Tomcat和Jetty面向java语言,先天就是重量级的Web服务器,其性能与Nginx没有可比性;
  b、Apache的发展时间很长,而且是目前的世界第一大Web服务器,它有许多优点,如稳定、开源、跨平台等,但是它兴起的时候,互联网的产业规模远远比不上现在。所以Apache被设计成了一个重量级的、不支持高并发的Web服务器。在Apache服务器上,如果有大量的并发请求同时访问就会导致服务器上消耗大量内存,也会消耗大量的CPU资源,并导致HTTP请求的平均响应速度会降低。

2、编译与安装

安装环境准备:

  (1)Linux内核2.6及以上版本
  在Linux系统下输入uname -a就可以查看Linux的内核版本。如下图所示我的Linux内核版本是2.6以上的:
查看Linux内核版本
  Nginx的官网有不同的版本,在此说明一下。
  1、Mainline version是开发版本,在生产环境是不介意使用的;
  2、Stable version是正式版本,目前来说是最新的一个稳定版本,本次就用CHANGES-1.14最新的这个版本;
  3、Legacy versions都是老版本的了。
Nginx各个版本说明
  (2)gcc编译器
  GCC可以用来编译C语言程序。Nginx是不会直接提供二进制可执行程序,只能下载源代码进行编译。
  (3)PCRE库
  PCRE是由Philip Hazel开发的函数库,目前为很多软件使用,该库支持正则表达式。
  (4)zlib库
  zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf里配置了gzip on,并指定对于某些类型的HTTP响应使用gzip来进行压缩以减少网络的传输量。
  (5)OpenSSL开发库
  如果我们的服务器不指要支持Http,还需要在更安全的SSL协议上传输Http,那么就需要拥有OpenSSL了。另外,我们如果想使用MD5、SHA1等散列函数也是需要安装它的。
  (6)安装gcc编译器、PCRE库、zlib库、OpenSSL开发库
  我们可以通过yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre pcre-devel这一行命令来安装这几个库。如下图所示:
安装nginx环境库
  (7)解压并安装Nginx
  a、新建一个tools的文件夹,使用xftp将nginx-1.14.0.tar.gz压缩包上传到tools文件夹。然后使用tar -zxvf nginx-1.14.0.tar.gz命令将其解压。如下图所示:
解压Nginx
  b、使用 cd nginx-1.14.0/进入nginx-1.14.0文件夹,并使用./configure对安装环境做初始化这个命令会将源代码编译到objs文件夹内(objs内的还是nginx源代码不是可执行文件)。如下图所示:
编译源代码
objs文件夹
  c、使用make命令进行构建,这个时候才是真正的将源代码构建成了可执行的二进制程序,如下图所示:
make构建
  d、最后使用make install安装,Nginx会默认安装到usr/local文件下。如下图所示:
make install
  d、进入nginx的安装目录,可以看到有conf、html、logs、sbin四个文件夹。conf是Nginx的配置文件的目录,html是默认的一个静态站点,logs就是存储Nginx日志的,sbin就是Nginx的可执行文件。如下图所示:
Nginx的文件夹
  e、使用./sbin/nginx运行nginx,如下图所示:
运行Nginx
Ngin查看进程
  从上图宽容与看出Nginx启动完成后有一个master进程一个worker进程,master进程是它的主进程,主要是来做一些热装载或者更新日志之类的。worker才是真正的来执行我们客户端的连接,建立连接后来执行请求用的,当然worker进程是可以设置多个的。
成功页面
  我在此输入的地址是我在Linux系统中使用桥接网络模式并且在/etc/sysconfig/network-scripts/ifcfg-eno16777736文件里配置的ip地址。Linux中使用桥接模式配置网络如下:

#桥接模式网络配置
#1.配置ip地址等信息
#在 /etc/sysconfig/network-scripts/ifcfg-eno16777736文件里做如下配置
TYPE=Ethernet # 网络类型为以太网
BOOTPROTO=static # 手动分配ip
DEVICE=eno16777736 # 网卡设备名,设备名一定要跟文件名一致
ONBOOT=yes # 该网卡是否随网络服务启动
IPADDR=192.168.0.00 # 该网卡ip地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.0.0 # 网关
DNS1=8.8.8.8 # DNS,8.8.8.8为Google提供的免费DNS服务器的IP地址
#2.配置网络工作
#在/etc/sysconfig/network文件里增加如下配置
NETWORKING=yes # 网络是否工作,此处一定不能为no
#3.配置公共DNS服务(可选)
#在/etc/resolv.conf文件里增加如下配置
nameserver 8.8.8.8
#4.关闭防火墙
systemctl stop firewalld # 临时关闭防火墙
systemctl disable firewalld # 禁止开机启动
#5.重启网络服务
service network restart

  f、小编刚刚使用的安装方式是最简单的全部都是默认的安装方式。当然也可以配置参数安装,命令如下:./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-debug,prefix参数指定安装目录为/usr/local/nginx,with参数加入Nginx默认模块的一些其它模块。如图所示:
Nginx重新安装
  (8)Nginx控制命令

 #默认方式启动(后台方式):
    ./sbin/nginx 
    #指定配置文件启动 ,如果没有指定则会默认指定为安装目录下的conf/nginx.conf文件启动
    ./sbing/nginx -c /tmp/nginx.conf 
    #指定nginx程序目录启动
    ./sbin/nginx -p /usr/local/nginx/
    #快速停止,此种方式停止不管请求有没有被处理完都会直接把nginx进程杀掉
    ./sbin/nginx -s stop
    #优雅停止,此种方式停止会等待将请求处理完才会将nginx进程杀掉
    ./sbin/nginx -s quit
    #热装载配置文件,可以在不重庆nginx的情况下加再nginx的配置文件
    ./sbin/nginx -s reload
    #重新打开日志文件
    ./sbin/nginx -s reopen
	#检测nginx.conf的配置是否正确
	./sbin/nginx -t

  ./sbin/nginx -s reopen重新打开日志文件这个命令可能不太理解为什么要重新打开日志文件。使用图片演示一下:
  1、进入logs文件夹并使用ll命令查看文件详情时候可以看到access.log文件大小为2105 0ct如下图所示:
access.log
  2、在网页上刷新几下Nginx的欢迎页面,再次查看logs文件夹下的access.log文件大小为3273 0ct如下图所示:
在这里插入图片描述
  3、使用mv access.log access.log.backup命令将access.log文件重命名为access.log.backup。然后再使用touch access.log新建access.log文件,新建文件大小为0 0ct。然后刷新Nginx的欢迎页面。我们会发现文件大小改变的不是access.log这个文件了文件大小改变的是access.log.backup,详情如下图所示:
新建
  4、使用./sbin/nginx -s reopen重新打开日志文件,再刷新Nginx页面然后查看logs文件夹内的日志文件。如下图所示:
查看新日志
  为什么在第三步操作的时候Nginx是将日志打印到access.log.backup文件呢?这是因为Nginx在和文件打交道的时候,Nginx拿到的只是一个句柄,它是根据句柄来的。可以理解为句柄里面有一个属性叫路径名,当我们的路径名变成一个新的名字的时候,这个时候和句柄是没有关系的,Nginx拿到的还是原来的那个句柄里。这个也和java的引用类似。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值