Nginx 最初是作为一个 Web 服务器创建的,用于解决 C10k 的问题。作为一个 Web 服务器,它可以以惊人的速度为您的数据服务。但 Nginx 不仅仅是一个 Web 服务器,你还可以将其用作反向代理,与较慢的上游服务器(如:Unicorn 或 Puma)轻松集成。你可以适当地分配流量(负载均衡器)、流媒体、动态调整图像大小、缓存内容等等。

基本的 nginx 体系结构由 master 进程和其 worker 进程组成。master 读取配置文件,并维护 worker 进程,而 worker 则会对请求进行实际处理。

正式开始前,编译环境gcc g++ 开发库之类的需要提前装好。

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

安装Nginx依赖库

安装gcc g++依赖库

1 sudo apt-get install build-essential
2 sudo apt-get install libtool

sudo 的意思是赋予当前登录用户某某权限(super user do),也可以直接apt-get install ...,如果直接使用apt-get提示权限不足时,可以加上sudo来操作,就OK了。可以参考:ubuntu使用su切换root用户提示“认证失败”来了解sudo的作用。如果当前你登录的是root根用户,直接使用apt-get即可。接下来的操作如果涉及到权限不足,皆可使用sudo或者切换到根用户下。

(gcc和g++区别和作用参考:http://www.cnblogs.com/samewang/p/4774180.html

安装pcre依赖库

1 sudo apt-get update
2 sudo apt-get install libpcre3 libpcre3-dev

apt-get,是一条linux命令,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

apt-get update 的意思是更新当前系统软件包列表。具体可参考该命令详解。

nginx的rewrite伪静态匹配规则用到正则,pcre就用来干这个。具体查看360百科

安装zlib依赖库

1 sudo apt-get install zlib1g-dev

安装ssl依赖库

1 sudo apt-get install openssl

OpenSSL是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。调用OpenSSL的函数就可以实现一个SSL加密的安全数据传输通道,从而保护客户端和服务器之间数据的安全。

一路走下来,我们可以发现,所有的依赖库啊之类的基本上都是用C或者C++来编写的,然后通过gcc或者g++来编译,可见C和C++的强大。

安装Nginx

apt-get 一键安装

1 sudo apt-get update
2 sudo apt-get install nginx

手动编译安装

1 # 下载最新版本
2 wget http://nginx.org/download/nginx-1.2.2.tar.gz
3 # 解压
4 tar -zxvf nginx-1.2.2.tar.gz
5 # 进入解压目录
6 cd nginx-1.2.2
7 # 配置
8 sudo ./configure --prefix=/usr/local/nginx
9 # 编译nginx
10 sudo make
11 #安装nginx
12 sudo make install
12 # 启动nginx
14 sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
15 # 注意:-c 指定配置文件路径,不加的话,nginx会自动加载默认路径的配置文件,可以通过 -h查看帮助命令。
16 # 查看nginx进程
17 ps -ef|grep nginx

注意:以上sudo可加可不加,仅在权限不足时临时获得根用户权限。可参考“安装gcc g++依赖库”中的介绍。

Nginx常用命令

启动Nginx

1 sudo /usr/local/nginx/sbin/nginx
2 注意:若是已经将nginx加入系统服务,可不用输入那么长的地址,具体步骤后续讨论,和shell相关。

停止Nginx

1 sudo /usr/local/nginx/sbin/nginx -s stop
2 注意:stop 是快速关闭,不管有没有正在处理的请求。
1 sudo /usr/local/nginx/sbin/nginx -s quit
2 注意:quit 是一个优雅的关闭方式,Nginx在退出前完成已经接受的连接请求。

-s 的意思是向nginx发送信号,signal的意思。可参考:CommandLine

重新加载配置信息

1 sudo /usr/local/nginx/sbin/nginx -s reload

指定配置文件

1 sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

-c 的意思是指定配置文件,configuration

查看Nginx版本

1 sudo /usr/local/nginx/sbin/nginx -v
 2  nginx version: nginx/1.2.2

要想查看具体Nginx版本信息,将小些的v改成大写的V即可。

将显示:

nginx version: nginx/1.2.2
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
configure arguments: --prefix=/usr/local/nginx

检查Nginx配置文件是否有误

1 sudo /usr/local/nginx/sbin/nginx -t
2 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
3 nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful  

出现上述提示就表示配置文件是正确的,否则将会有相关提示。

大量参考来自:Ubuntu16.04.1 安装Nginx

Ubuntu下安装LNMP之nginx的安装的更多相关文章

  1. Ubuntu下安装LNMP之php7的安装并配置Nginx支持php及卸载php

    据了解,php7是比之前的版本性能快很多的.http://php.net/get/php-7.2.2.tar.gz/from/a/mirror 安装前也可提前将相关依赖库安装好,或者在安装php时若安 ...

  2. CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)

    关于 Nginx (发音 “engine x”)这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS 6.5服务器(适用 ...

  3. centos7安装Lnmp(Linux+Nginx+MySql+Php+phpMyAdmin+Apache)

    centos7安装Lnmp(Linux+Nginx+MySql+Php)及Apache   Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx是一个高性能的HTTP和反向代理服务器,Ng ...

  4. Ubuntu下使用Deepin-wine的移植版安装qq微信等

    title: Ubuntu下使用Deepin-wine的移植版安装qq微信等 toc: false date: 2018-09-18 16:12:49 categories: methods tags ...

  5. Ubuntu下安装LNMP之nginx的卸载

    我在安装Nginx时,是采用自己从网上down下自己需要的nginx版本进行编译安装的,如果使用过apt库来进行安装的话可以参考这篇文章:ubuntu中彻底删除nginx 假如是编译安装的童鞋,可以按 ...

  6. Ubuntu 14.04 安装LNMP(nginx/1.12.1+php7.1.9+mysql5.7.19)环境

    这篇教程中,我们将讨论怎样在Ubuntu 14.04搭建LNMP环境 1 安装Nginx 首先我们要更新apt源 sudo add-apt-repository ppa:nginx/stable  s ...

  7. CentOS 7 下编译安装lnmp之nginx篇详解

    一.安装环境 宿主机=> win7,虚拟机 centos => 系统版本:CentOS Linux release 7.5.1804 (Core),ip地址 192.168.1.168   ...

  8. [转载]CentOS 7 用户怎样安装 LNMP(Nginx+PHP+MySQL)

    关于 Nginx (发音 "engine x")这是一款免费.开源.高效的 HTTP 服务器,Nginx是以稳定著称,丰富的功能,结构简单,低资源消耗.本教程演示如何在CentOS ...

  9. centos6服务器YUM安装LNMP(LINUX+NGINX+MYSQL+PHP)

    之前都用的lamp,这次配置一个lnmp来看看,试试Nginx是不是好用 关闭SELINUXvi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXT ...

随机推荐

  1. Linux 系统无法登录?你的程序有问题吧!

    今天遇到一个问题,有个用户连接不上服务器(无法ssh远程连接) su: failed to execute /bin/bash: Resource temporarily unavailable 谷歌 ...

  2. Learning Experience of Big Data:The First Day-Try to set up a network connection on my virtural machine

    After we install our virtual machine,the first thing we should do is to set up a network connection ...

  3. Learning Experience of Big Data: Learn to install CentOs 6.5 on my laptop

    I have learnt some experience about Big Data during my summer vocation,I was told that The first thi ...

  4. 数据分析处理库Pandas——字符串操作

    字符串小写 字符串大写 字符串长度 去掉字符串中的空格 去掉字符串中的左空格 去掉字符串中的右空格 字符串替换 按字符串切割 字符串是否包含在另一个字符串中

  5. struts2架构网站漏洞修复详情与利用漏洞修复方案

    struts2从开发出来到现在,很多互联网企业,公司,平台都在使用apache struts2系统来开发网站,以及应用系统,这几年来因为使用较多,被攻击者挖掘出来的struts2漏洞也越来越,从最一开 ...

  6. css常用样式属性详细介绍

    对于初学css的来说,肯定会觉得这么多样式不好记,而且记住了也容易忘,其实刚开始我们不用去记这么多的样式,确实是记了也会忘,刚开始只需记住一些常用的就可以了,然后在慢慢的使用过程当中接触并学习一些高级 ...

  7. mac制作U盘启动器

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.所需工具及必要条件: 1. 首先需要一个大于16GB U盘. 2.电脑系统版本应该大于10.11.X(因为之前 ...

  8. 总结Verilog中always语句的使用

    always语句包括的所有行为语句构成了一个always语句块.该always语句块从仿真0时刻开始执行其中的行为语句:最后一条执行完成后,再开始执行其中的第一条语句,如此往复循环,直到整个仿真结束. ...

  9. 封装一个List集合和datatable相互转换的工具类(可对指定列进行重命名并且指定输出列)

    /// <summary> /// List转换为DataTable对象 /// </summary> public class ListTranTableModel { // ...

  10. ActiveMQ测试实例

    ActiveMQ的安装与启动 1 下载ActiveMQ:http://activemq.apache.org/download.html 2 下载后解压到任意文件夹,解压后文件夹内的目录为: 3 进入 ...