自学nginx(一): nginx的快速安裝
来源:互联网 发布:淘宝打包员工作流程 编辑:程序博客网 时间:2024/05/29 03:23
开篇
一直精力都放在开发上面,对于运维方面没有很好的总结过,趁还有一点动力,把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 -vnginx version: nginx/1.10.3[root] service nginx statusnginx is stopped
默认的配置文件在哪里
默认的nginx配置文件在/etc/nginx/nginx.conf, 关于配置文件的学习体会放在下一篇
尝试启动nginx
[root] service nginx startStarting nginx: [ OK ][root] service nginx statusnginx (pid 16111) is running...[root] netstat -ntpltcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16111/nginx
尝试用浏览器访问
看到这个页面说明nginx已经在干活了。
如果服务器有公网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 80nginx 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 80nginx 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架构上的一些东东。
- 自学nginx(一): nginx的快速安裝
- 自学nginx(二): nginx的配置文件解读
- 自学nginx(三): nginx + gunicorn的反向代理
- 初识Nginx(一):nginx的安装
- ubuntu 安裝 nginx
- centos7 安裝nginx
- centos7 安裝 Nginx
- linux 安裝 Nginx
- nginx(一) nginx详解
- 自学nginx(四): 禁止从某国家的访问
- Nginx 源码学习(一) nginx的跟踪与调试
- Nginx学习笔记(一):nginx的安装和配置
- 快速添加nginx的虚拟主机
- nginx 安装 (一)
- nginx 学习(一)
- nginx学习(一)
- nginx 笔记(一)
- Nginx学习(一)
- 自定义软键盘,随机数字位置键盘
- C#中I/O操作
- UGUI研究院之新手引导事件上下分离
- Android 常用测试接口 视频,天气等
- 51nod 1605-棋盘游戏(博弈)
- 自学nginx(一): nginx的快速安裝
- spark-streaming 编程(二) word count单词计数统计
- 使用Gson解析复杂的泛型嵌套泛型数据结构
- 网络爬虫思路
- PHP中echo(),print(),print_r()的区别及打印函数
- 读写锁
- Spring框架_实例化Bean的三种方式
- java自定义异常使用(1)
- JAVA互联网架构学习之SpringMVC其二