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——包含什么模块、具备什么功能,请参考下文:

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安装方式探究的更多相关文章

  1. nginx安装方式

    1.首先安装pcre库 获取pcre到一个目录 wget http://ftp.exim.llorien.org/pcre/pcre-8.21.tar.gz 解压缩pcre包 tar -zxvf pc ...

  2. Nginx安装与使用 及在redhat 中的简单安装方式

    首先说下在redhat中的安装方法, 正常安装nginx 需要安装很多的依赖,最后再安装nginx,而且很容易出错. 在nginx官方上有这么一段描述: Pre-Built Packages for ...

  3. Nginx常见的安装方式

    Nginx常见的安装方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx的安装版本分为开发版.稳定版和过期版, Nginx安装可以使用yum或源码安装 ...

  4. Nginx采用yum安装方式及安装后的目录

    第一次写博客就不讲究格式了,纯文字了吧 开始 第一步先执行 rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release- ...

  5. zabbix 3.0.3 (nginx)安装过程中的问题排错记录

    特殊注明:安装zabbix 2.4.8和2.4.6遇到2个问题,如下:找了很多解决办法,实在无解,只能换版本,尝试换(2.2.2正常 | 3.0.3正常)都正常,最后决定换3.0.3 1.Error ...

  6. Windows下将nginx安装为服务运行

    今天看到nginx这个小服务器软件正式版更新到了1.4.2,想玩下它.这个服务器软件虽小,但功能强大,是开源软件,有着良好的性能,被很多个人.企业,甚至大型企业所使用! 由于是在Windows下,所以 ...

  7. windows下nginx安装、配置与使用(转载)

    目前国内各大门户网站已经部署了Nginx,如新浪.网易.腾讯等:国内几个重要的视频分享网站也部署了Nginx,如六房间.酷6等.新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx ...

  8. Nginx安装与使用

    前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大 ...

  9. Nginx安装、配置文档

    Nginx介绍 nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发 ...

随机推荐

  1. 在ubuntu下运行python脚本

    转自http://www.cnblogs.com/hester/p/5575658.html 1. 运行方式一 新建test.py文件: 1 touch test.py 然后vim test.py打开 ...

  2. Linux搭建好apache后,只有本地能访问,局域或外网不能访问

    由于防火墙的访问控制导致本地端口不能被访问. 解决方法: 1,直接关闭防火墙  systemctl stop firewalld.service #停止防火墙服务 systemctl disable ...

  3. 2013长春网赛1010 hdu 4768 Flyer

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4768 题意:有n个社团发传单,每个社团发给编号为A_i, A_i+C_i,A_i+2*C_i,…A_i ...

  4. WORDPRESS修改文章文件后,出现乱码

    文章文件(single.php)发生改变时,部分静态文字出现乱码 解决方案: 1.进入你的ftp空间,进入你的主题文件夹,选取你要加中文文字的那个文件,例如我的就是footer.php. 2.把foo ...

  5. ST算法详解

    ST算法详解 Coded by Jelly_Goat. All rights reserved. 这个主要是说ST表的. 首先了解一下ST表是什么. 先来一个老套的情景带入. (假设所有的题目都是1s ...

  6. HEOI2018(九省联考) 题解集合

    转载请注明出处:http://www.cnblogs.com/LadyLex/p/8792894.html 今年的省选题目真是赞啊……Day2的题完全不会做…… 不过终于卡着校线爬着进了B队 终于改完 ...

  7. 数位DP学习笔记

    数位DP学习笔记 什么是数位DP? 数位DP比较经典的题目是在数字Li和Ri之间求有多少个满足X性质的数,显然对于所有的题目都可以这样得到一些暴力的分数 我们称之为朴素算法: for(int i=l_ ...

  8. 【CH6201】走廊泼水节

    题目大意:给定一棵树,要求增加若干条边,将其转化为完全图,且该完全图以该树为唯一的最小生成树,求增加的边权最小是多少. 题解:完全图的问题一般要考虑组合计数.重新跑一遍克鲁斯卡尔算法,每次并查集在合并 ...

  9. 安装【Jenkins】

    前言      jenkins的一款持续集成工具,      它可以做的事情很多,其中一个主要的功能就是简化部署流程          回想一下我们的发布流程:           1.本地把项目打包 ...

  10. Python 堆与堆排序

    堆排序与快速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法.学习堆排序前,先讲解下什么是数据结构中的二叉堆. 二叉堆的定义 二叉堆是完全二叉树或者是近似完全二叉树. 二叉堆满足 ...