一、nginx 基本介绍

1、Nginx 是单进程单线程模型,也就是启动的工作进程只有一个线程响应客户端请求,而 apache 可以在一个进程内启动多个线程响应客户端请求。所以 nginx 的内存占用要比 apache 小很多。

2、Nginx 和 Mysql 都是 cpu 密集型的。也就是对 CPU 的占用比较大。默认 session 在本地文件保存。

3、 Nginx 可以作为 http 服务器,也可以作为反向代理服务器或者邮件发送服务器,可以快速响应静态网页的请求。

4、Nginx 可以源码安装或 yum 安装。建议使用源码安装,因为 yum 版本比较旧,使用源码可以自定义功能,方便业务上的使用。源码安装需要准备标准的编译器 GCC,以及 Automake 工具来完成自动创建 makefile 文件的工作。

二、安装

   1、准备安装环境

         yum install gcc  gcc-c++ automake pcre pcre-devel zlip zlip-devel openssl openssl -devel

安装完成!

   gcc为GNU Compiler Collection的缩写,可以编译C和C++源代码等,它是GNU开发的C和C++以及其他很多种语言 的编译器(最早的时候只能编译C,后来很快进化成一个编
译多种语言的集合,如Fortran、Pascal、Objective-C、Java、Ada、 Go等。)
  gcc 在编译C++源代码的阶段,只能编译 C++ 源文件,而不能自动和 C++ 程序使用的库链接(编译过程分为编译、链接两个阶段,注意不要和可执行文件这个概念搞混,相对
可执行文件来说有三个重要的概念:编译(compile)、链接(link)、加载(load)。源程序文件被编译成目标文件,多个目标文件连同库被链接成一个最终的可执行文件,可执
行文件被加载到内存中运行)。因此,通常使用 g++ 命令来完成 C++ 程序的编译和连接,该程序会自动调用 gcc 实现编译。
  gcc-c++也能编译C源代码,只不过把会把它当成C++源代码,后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序,注意,虽
然c++是c的超集,但是两者对语法的要求是有区别的。
  automake是一个从Makefile.am文件自动生成Makefile.in的工具。为了生成Makefile.in,automake还需用到perl,由于automake创建的发布完全遵循GNU标准,所以
在创建中不需要perl。libtool是一款方便生成各种程序库的工具。
  pcre pcre-devel:在Nginx编译需要 PCRE(Perl Compatible Regular Expression),因为Nginx 的Rewrite模块和HTTP 核心模块会使用到PCRE正则表达式语法。
  zlip zlib-devel:nginx启用压缩功能的时候,需要此模块的支持。
  openssl openssl-devel:开启SSL的时候需要此模块的支持。

   2、官网下载 nginx 安装包, http://nginx.org/

分为开发版、稳定版、过期版三种版本,一般选择 stable version,官网可以看到稳定版最新版本为 1.14.2

linux 下使用 wget 命令下载: wget http://nginx.org/download/nginx-1.14.2.tar.gz

报错: wget: command not found

问题原因:没有安装 wget

解决方式: yum  -y  install wget

wget 安装成功后,再次使用 wget 命令安装 nginx

 3、下载完成后,解压安装包

4、编译 nginx

cd 到 nginx 解压目录

编译命令:

./configure  --prefix=/usr/local/nginx  --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock  --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre

编译结果:

5、 make 生成脚本及配置文件

命令行中输入 make ,结果如下:

6、make install

到这里,nginx 的安装完成了。安装目录在 /usr/local/nginx 。

需要知道的 4 个主要目录:

conf:  /usr/local/nginx , 存放 nginx 的配置文件,nginx.conf 是 nginx 服务最核心最主要的配置文件。

html:/usr/local/nginx,保存 ningx 服务器的 web 文件。也可以更改为其他目录保存 web 文件。

logs: /var/logs/nginx,保存 ningx 服务器的访问日志、错误日志等日志。

sbin: /usr/local/nginx,保存  nginx 二进制启动脚本。可以接受不同参数以实现不同的功能。

  7、启动、停止与重启

    1)修改监听端口,避免 80 端口冲突。

vi /usr/local/nginx/nginx.conf

    

2)启动

启动代码格式:nginx的安装目录地址 -c  nginx的配置文件地址

启动时报错1:nginx: [emerg] getpwnam("nginx") failed

原因:没有创建 nginx 用户导致的。

解决方式1:去掉 nginx.conf 文件中 user nobody 的注释。

解决方式2:创建一个 nginx 用户

useradd nginx -s /sbin/nologin -M

再次启动仍报错:nginx: [emerg] mkdir() "/var/tmp/nginx/client/" failed (2: No such file or directory)

解决方式:创建 /var/tmp/nginx 目录。 sudo mkdir -p /var/tmp/nginx

创建成功后,再次执行启动命令,启动成功

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

启动成功后访问  http://IP:8090/

nginx 的安装、启动、停止与重启的更多相关文章

  1. nginx mac 下启动 停止 重启,查看安装位置

    Nginx的启动.停止与重启   启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/ ...

  2. ubuntu 14.04(desktop amd 64) nginx 安装启动停止

    sudo apt-get install nginx 关闭: sudo service nginx stop 启动: sudo nginx

  3. Redis 安装 启动 连接 配置 重启

    Linux下安装 ]# wget http://download.redis.io/releases/redis-2.8.17.tar.gz ]# .tar.gz ]# cd redis- ]# ma ...

  4. Windows下Apache的下载安装启动停止

    一:下载 打开任意浏览器,输入网址:http://httpd.apache.org/ 进入如下界面: 我们选择最新版Apache httpd 2.4.12Released,点击Download,进入如 ...

  5. win nginx + php bat启动/停止脚本

    启动脚本 @echo offREM Windows 下无效REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量set PHP_F ...

  6. c#用控制台程序安装启动停止卸载服务

    第一步:新建控制台项目  第二步:添加服务 第三步:右键新建完成的服务项 点击 在start 和stop事件中分别写上   第四步 编写代码 双击打开 using System; using Syst ...

  7. Nginx Windows 安装启动

    原文连接:http://tengine.taobao.org/book/appendix_c.html#nginxwindows 下载 Nginx是开源软件,用户可以访问 http://nginx.o ...

  8. Nginx学习——Nginx启动、停止、重启和信号控制以及平滑升级

    1.Nginx 启动与停止 (1)启动方式 启动格式:Nginx可执行文件地址 -c Nginx配置文件地址 /etc/local/nginx/sbin/nginx -c /root/dufy/ngi ...

  9. Linux下Nginx安装/启动/重启/停止

    Nginx是高性能的web服务器也是非常好用反向代理服务器,可以实现负载均衡,动静分离等策略,在linux下用的非常多.下面是下载地址   http://nginx.org/en/download.h ...

随机推荐

  1. MySQL 数据表操作

    MySQL 数据表操作 创建MySQL数据表需要以下信息: -表名: -表字段名: -定义每个表字段: 一.创建数据表 1)mysql> create  table  table_name (c ...

  2. [随笔][胡思乱想][唠叨][web server]

    nginx是一个webserver,最基本的功能是发送静态的文件.类似于apache2的webserver,主要的功能就是响应请求,做出响应. 所说的服务器是安装了服务器软件的物理机,专用的服务器或者 ...

  3. Java高级特性 第15节 解析XML文档(3) - JDOM和DOM4J技术

    一.JDOM解析 特征: 1.仅使用具体类,而不使用接口. 2.API大量使用了Collections类. Jdom由6个包构成: Element类表示XML文档的元素 org.jdom: 解析xml ...

  4. 使用excel 数据透视表画图

    ①    打开Excel,选中需要制表的数据,点击“插入”->“数据透视表”          ②    出现下列对话框,点击“确定”          ③    再新的“sheet”表内对“数 ...

  5. node.js 远程调试debug产线环境代码

    一.背景: 产线机器出bug,不能重启服务,需要保留现场,问题不好排查,只能靠远程debug. 二.实现步骤 1. 登录远程机器执行如下命令,nodePid为node服务的pid kill -usr1 ...

  6. Azure CosmosDB (7) 分区键Partition Key

    <Windows Azure Platform 系列文章目录> Azure Cosmos DB使用分区键(Partition Key),来对数据进行水平缩放(Horizon Scale), ...

  7. sed命令的基本使用方法

    sed命令 stream editor,用程序的方式编辑文本.基本上是玩正则模式匹配. 用s命令替换 $ sed "s/my/Hao Chen's/g" pets.txt 单引号去 ...

  8. FBI树-数据结构(二叉树)

    问题 B: [2004_p4]FBI树-数据结构 时间限制: 1 Sec  内存限制: 125 MB提交: 57  解决: 46 题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称 ...

  9. jumpservice使用465端口发送邮件

    阿里云.华为云等云服务器默认屏蔽掉了25端口后,内网服务器如何通过跳板机发送邮件到外网邮箱. 如果是可联网的阿里云机器,可以直接配置mailx使用465端口发送邮件.需要进行ssl验证配置. Cent ...

  10. 事务回滚 SET XACT_ABORT ON

    USE tempdb IF OBJECT_ID ('dbo.test') IS NOT NULL DROP TABLE dbo.test GO CREATE TABLE dbo.test ( id I ...