自学nginx(一): nginx的快速安裝

开篇

一直精力都放在开发上面,对于运维方面没有很好的总结过,趁还有一点动力,把nginx的一些基本内容巩固复习一下。每一篇尽可能有一个主题,并且内容消化控制在5分钟。

另外一点很重要的是,博客的所有内容都是我亲自操作的结果,也会夹杂我的亲身的感悟和体会,尽可能是所有的操作可以按照步骤还原。

概要

本篇对nginx的安装进行最基本的概述。因为用的是yum安装,所以so easy,都不太想写下去了。。。不过为了完整记录过程,以及写一些我的体会,还是老老实实记录一下。

我所使用的操作系统说明

我用的操作系统是aws的ec2的Amazon Linux AMI (HVM)进行的操作,所以如果不是这个操作系统的话,可能安装nginx上有些许不一样。

我的操作步骤之安装

[ec2-user]$ sudo su # 使用root用户进行安装
[root] yum install nginx  # 一路yes下去就安装完成了

我的操作步骤之确认是否安装成功

[root] nginx -v
nginx version: nginx/1.10.3
[root] service nginx status
nginx is stopped

默认的配置文件在哪里

默认的nginx配置文件在/etc/nginx/nginx.conf, 关于配置文件的学习体会放在下一篇

尝试启动nginx

[root] service nginx start
Starting nginx:                                            [  OK  ]
[root] service nginx status
nginx (pid  16111) is running...
[root] netstat -ntpl
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      16111/nginx 

尝试用浏览器访问

看到这个页面说明nginx已经在干活了。
alt text
如果服务器有公网ip或者解析好的域名的话,也可以通过ip或者域名来进行访问。如http://XX.XX.XX.XX或者http://www.mysite.com

至于为什么我们能看见这个页面,等下一篇说到nginx的配置文件的时候再解释。先透露一下这个页面其实是服务器的/usr/share/nginx/html/index.html文件。所以/usr/share/nginx/html/这个目录下不要随便放隐私的东西,浏览器都访问的到哦。

重启nginx

安装nginx都是一次性的操作,但是重启nginx今后会经常发生,因为每改动一次nginx的配置文件,我们都需要重启nginx。
有两种方法重新启动nginx
1. service nginx restart
2. nginx -s reload
很少有人会写文章提到两者的区别,可能这个太容易想到了,都不屑一提。

我体会下来,两者的区别如下:
nginx本身其实是master-worker模式的,就是说当你运行启动nginx的命令以后,会启动master进程,而master进行又会根据nginx的配置文件里面指定的user和worker数量来启动n个新的worker子进程。

service nginx restart命令会导致master母进程和worker子进程都变成新的进程,我称之为大重启。但是nginx -s reload只会重启worker子进程,而master母进程并不会重启,我称之为小重启。

一般我们修改nginx的配置文件后,要让配置文件起效的话,运行nginx -s reload就可以了。

见证master和worker进程

你可以用ps命令,或者lsof都可以偷窥到nginx所生产出来的进程

[root]# lsof -nP -i | grep LISTEN| grep 80
nginx     16111     root    6u  IPv4 8577034      0t0  TCP *:80 (LISTEN)
nginx     16111     root    7u  IPv6 8577035      0t0  TCP *:80 (LISTEN)
nginx     16113    nginx    6u  IPv4 8577034      0t0  TCP *:80 (LISTEN)
nginx     16113    nginx    7u  IPv6 8577035      0t0  TCP *:80 (LISTEN)

你会看到其实有两个进程号16111和16113。16111进程的user是root,是master进程,16113进程的user是nginx,是worker进程。当worker的数量设置成2的时候(需要修改配置文件并重启nginx),在运行lsof命令,你就会发现如下的图:

[root]# lsof -nP -i | grep LISTEN| grep 80
nginx     16111     root    6u  IPv4 8577034      0t0  TCP *:80 (LISTEN)
nginx     16111     root    7u  IPv6 8577035      0t0  TCP *:80 (LISTEN)
nginx     16208    nginx    6u  IPv4 8577034      0t0  TCP *:80 (LISTEN)
nginx     16208    nginx    7u  IPv6 8577035      0t0  TCP *:80 (LISTEN)
nginx     16209    nginx    6u  IPv4 8577034      0t0  TCP *:80 (LISTEN)
nginx     16209    nginx    7u  IPv6 8577035      0t0  TCP *:80 (LISTEN)

上图也证明了用nginx -s reload,master进程是不会重启的,重启的只有worker子进程。

结语

我个人比较有体会的是了解到了nginx的master-worker模式。从而也更容易理解配置文件里面的user和worker的配置(这个下篇再说)。再之后记录一下nginx+gunicorn+flask架构上的一些东东。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值