Nginx安装方式探究
Ubuntu 16.04(阿里云ECS),Nginx 1.10.3 (Ubuntu)
本文探究两种安装方式:
1.源码安装(手动)
2.APT安装(自动)
源码安装(手动)
步骤简介:
下载、解压、./configure、make、make install(好像可以不要),,后面还要把nginx命令添加到环境变量PATH中、设置随机启动等工作。
下载:$ wget http://nginx.org/download/nginx-1.15.2.tar.gz
解压:$ tar -zxvf nginx-1.15.2.tar.gz
进入解压后的Nginx目录,执行./configure ...、make、make install进行安装。
安装到了/home/username/server/nginx中,安装目录下包括配置文件conf子目录下的nginx.conf。
在/etc/profile文件中将家目录下nginx添加到环境变量中:export命令
在/etc/rc.local文件(本地的Ubuntu 18.04中没有找到)设置Nginx随机启动:/home/username/server/nginx/sbin/nginx
重启后,可以看到Nginx服务已经启动了:ps -ef | grep nginx。
其中,./configure这一步是重难点,它具有很多参数,用来配置将要安装什么样的Nginx——包含什么模块、具备什么功能,请参考下文:
--prefix选项指定安装目录(必须吧?),不过,自己并不很清楚要把软件要安装在哪里,于是就安装在了家目录下,可是,后面的操作就比较麻烦了。
上面链接文档中关于./configure的部分截图:
之前自己参考了另一篇博文(Linux下Nginx安装的方法(pcre和openssl))进行源码安装,结过,在和使用APT安装后的Nginx对比后发现其好像太简单了。
为什么会这么说呢?因为nginx命令的-V(大写V)选项的输出结果太简单了:
$ nginx -V
nginx version: nginx/1.14.
built by gcc 5.4. (Ubuntu 5.4.-6ubuntu1~16.04.)
configure arguments: --prefix=/home/ben/server/nginx/ --with-openssl=/usr/lib/ssl/
而使用APT安装后,执行nginx -V得到的是什么呢?见下图:
好多内容,好完整!不过,其版本为1.10.3,比使用源码的要低。
这和阿里云ECS的Ubuntu 16.04配置的APT源(/etc/apt/sources.list)有关系吧!
要升级的话,看来需要自己配置源,然后重新安装?或者,升级apt upgrade。
疑问:pcre和Nginx的正则匹配有关系,openssl呢?和使用Nginx支持HTTPS有关系?
APT安装(自动)
步骤简介:
使用sudo apt update检查可安装软件列表;
使用apt-cache search nginx | grep nginx查看可以安装的Nginx服务器,找到下面的:
nginx - small, powerful, scalable web/proxy server
使用sudo apt install nginx进行安装(输入y确认安装);
注意,参考上面的源码安装使用的参考文档,在安全前得确保pcre、openssl已经安装成功(具体原因不是很清楚)。其中,参考文档里面安装了openssl-dev,但在APT源中没有找到,据说在Ubuntu中是用libssl-dev:
安装完毕后,使用nginx -V可以查看到本文前面一张图的信息,其中的configure arguments更多,显得更完整了。
对了,其中还有--with-pcre-jit、--with-http_ssl_module、--with-stream_ssl_module、--with-mail_ssl_module等。
猜测:可以把这个configure arguments复制到源码安装的./configure那里吧?这样的话,源码安装和APT安装后的结果应该就一致了。
在惊叹nginx -V命令的结果如此多之后,仔细查看其结果,发现其中包含了Nginx服务器启动后的配置文件、日志文件、PID文件的信息:
/etc/nginx/目录、/var/log/nginx/目录、/run/nginx.pid文件
至于其中的其它几个路径,自己并不是太懂。
关于Nginx的配置,自己前面写了一篇博文介绍APT安装Nginx的,当然,新手之作,就不是那么完全了。
另外,在使用APT安装Nginx之后,Nginx程序已经被添加到Linux服务中了,使用下面的命令可以查看其状态:
service --status-all
上图使用了grep nginx只是查找nginx服务的信息。可以看到,在红色的nginx前面的中括号中是加号(+),这表示Nginx服务已经启动了,没有启动则为减号(-)。
说明,自己对Linux服务程序还是不太清楚,需要dig,在/etc/init.d/目录中的脚本都是服务吧?写好脚本,使用update-rc.d命令安装服务就可以了——前面看的资料是这样的。
知道Nginx程序被设置为Nginx服务了,那么,服务的启动、停止、重启、重载呢?使用service nginx命令可以看到下面的结果:
$ service nginx
Usage: nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}
这些命令的具体用法其实是写在/etc/init.d/nginx脚本中的,熟悉shell编程的话,可以仔细看看——目前自己的功力是不够的,但却更需要读懂它!
前面自己使用的多的命令是service nginx -s reload,多了一个-s,可上面的Usage中却没有提及。
原来,使用nginx -h命令可以获得相关信息啊!其中的-s选项表示 发送信号给master进程执行stop、quit、reopen、reload等操作。
APT安装方式怎么卸载呢?
sudo apt remove nginx,或者,sudo apt-get remove/purge nginx?自己没有试过,TBD。不知道这样的方式卸载是否能卸载干净。会存在什么问题呢?因为对Linux尚不精通,就不再多说了。
安装完Nginx后,只需要在/etc/nginx/目录下修改Nginx的配置就可以了,修改完毕后,执行sudo nginx -s reload重载Nginx访问。
顺便说一下,可以使用curl命令来测试Nginx提供的内容是否符合预期,这样就不需要通过浏览器来打开页面进行验证了,很棒的工具!如有文件下载功能,还可以使用wget命令进行测试!是的,这两个命令也得精通!使用curl时,感觉就像用上了爬虫工具!
08-08 14:29补充:
APT安装后的网页文件从哪儿来的呢?答案可以从/etc/nginx/nginx.conf中找到——server下的root显示为/var/www/html、index为index.html index.htm index.nginx-debian.html,而在/var/www/html目录中发现了一个index.nginx-debian.html,此即为Nginx服务器默认展示的首页,修改后,或添加一个index.html到其中,首页立即改变。
08-08 14:36补充:
Nginx服务启动后,存在一个mast进程和若干个worker进程,worker进程的数量由Nginx的配置决定。
需要注意的是,master进程的用户显示为root,worker进程的用户显示为www-data,也是由配置文件决定。
查看Nginx的进程信息:
$ ps -ef | grep nginx
root 3152 1 0 12:25 ? 00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 3170 3152 0 12:25 ? 00:00:00 nginx: worker process
配置文件:
$ cat /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
两种安装方式比较
1.源码安装比较繁琐(和自己不精通./configure有很大关系),安装后还要自己配置添加环境变量、配置随机启动等;而APT安装较为简单——如果没有配置APT源的话就更是简单了,本文没有介绍;
2.源码安装可以增强对Linux的了解、探索,期间会遇到不少问题,适合新手——在解决问题的过程中提高了对Linux及被安装的熟悉程度;而APT安装方式的效果则没有这么好了;
3.源码安装的软件可以直接选择最新的软件版本——只要支持所选操作系统;而APT安装方式则受制于APT源提供的——可以添加、更新;
在经历过源码安装后,对Linux更加熟悉后,目前自己选择使用APT方式来安装Nginx。
后记
需要精通shell编程,否则,启动脚本都读不懂;
需要熟悉Linux各种目录的用法,否则,源码安装时都不知道把软件安装在哪里;
这个问题存在好几天了,之前自己一直处于”漫漫长的困惑期“,看了很多资料,但都没有明确的”答案“,于是,今天自己勤快了一点,重新安装了Nginx,才对这个问题有了更深刻的印象;
写博文很重要,可以整理、复习,传播自己的有效经验,以及记录自己的困惑;
要是没写这篇博文,估计自己还要困惑下去,无法做出决定,是的,做决定!
Nginx安装方式探究的更多相关文章
- nginx安装方式
1.首先安装pcre库 获取pcre到一个目录 wget http://ftp.exim.llorien.org/pcre/pcre-8.21.tar.gz 解压缩pcre包 tar -zxvf pc ...
- Nginx安装与使用 及在redhat 中的简单安装方式
首先说下在redhat中的安装方法, 正常安装nginx 需要安装很多的依赖,最后再安装nginx,而且很容易出错. 在nginx官方上有这么一段描述: Pre-Built Packages for ...
- Nginx常见的安装方式
Nginx常见的安装方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx的安装版本分为开发版.稳定版和过期版, Nginx安装可以使用yum或源码安装 ...
- Nginx采用yum安装方式及安装后的目录
第一次写博客就不讲究格式了,纯文字了吧 开始 第一步先执行 rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release- ...
- zabbix 3.0.3 (nginx)安装过程中的问题排错记录
特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ...
- Windows下将nginx安装为服务运行
今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ...
- windows下nginx安装、配置与使用(转载)
目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...
- Nginx安装与使用
前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大 ...
- Nginx安装、配置文档
Nginx介绍 nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发 ...
随机推荐
- webpack打包使用
md创建文件夹 dir是遍历 如何安装node环境 首先下载安装包;安装好以后 使用cmd命令 建立一个新的文件夹(一定是英文的),然后cmd 命令中 cd 进入所安装的盘的地址. 在该文件夹下面 使 ...
- JwtUtils 工具类
/** * jwt工具类 */ public class JwtUtils { public static final String SUBJECT = "onehee"; *** ...
- 获取所有选中框的ids值
var os = $("input[name='rec_ids[]']:checked"); var ids = []; os.each(function(i){ ids.push ...
- [转载] 什么是istio 官网内容
网址:https://preliminary.istio.io/zh/docs/concepts/what-is-istio/ mark 一下 1.0 昨天刚发布. 2018.7.31 Istio 是 ...
- javascript extend
interface Date{ addHours(h:number); addMinutes(m:number); format(str):string } interface String{ tri ...
- C# 汉字排序
转载:http://blog.csdn.net/lgx040605112/article/details/6042316 using System; using System.Globalizatio ...
- oracle clob blob dblink
Create global temporary table temp on commit preserve rows as select * from abc@xxx select * from te ...
- 【刷题】BZOJ 2095 [Poi2010]Bridges
Description YYD为了减肥,他来到了瘦海,这是一个巨大的海,海中有n个小岛,小岛之间有m座桥连接,两个小岛之间不会有两座桥,并且从一个小岛可以到另外任意一个小岛.现在YYD想骑单车从小岛1 ...
- 【暴力Treap 或 离线归并】子串计数(genies)
子串计数(genies) Description 给出一段含有n个元素的序列a,要求求出子串和小于等于t的子串个数 Input Data 输入共两行第一行包含两个整数,n,t分别表示序列a元素的个数和 ...
- exgcd模板
逆元模板P1082 #include <cstdio> #include <algorithm> int exgcd(int a, int b, int &x, int ...