Nginx超详细入门教程

1 Nginx入门教程

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

技术学派:Nginx超详细入门教程

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mail.Ru、 VKontakte,以及 Rambler。据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中有 11.48%使用 Nginx 作为其服务器或者代理服务器。目前互联网主流公司360、百度、新浪、腾讯、阿里等,目前中国互联网企业 70%以上公司都在使用 nginx 作为自己的 web 服务器。Nginx 特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。

技术学派:Nginx超详细入门教程

Nginx 相对于 Apache 优点:

  1. 高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s
  2. 反向代理性能非常强。(可用于负载均衡)
  3. 内存和 cpu 占用率低。(为 Apache 的 1/5-1/10)
  4. 对后端服务有健康检查功能。
  5. 支持 PHP cgi 方式和 fastcgi 方式。
  6. 配置代码简洁且容易上手。

 2. Nginx 工作原理及安装配置

技术学派:Nginx超详细入门教程

Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。

Nginx 的模块从结构上分为

核心模块、基础模块和第三方模块:

核心模块:HTTP 模块、 EVENT 模块和 MAIL 模块

基础模块: HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite模块,

第三方模块:HTTP Upstream Request Hash 模块、 Notice 模块和 HTTP Access Key模块。

Nginx 的高并发得益于其采用了 epoll 模型,与传统的服务器程序架构不同,epoll 是linux 内核 2.6 以后才出现的。 Nginx 采用 epoll 模型,异步非阻塞,而 Apache 采用的是select 模型

Select 特点:select 选择句柄的时候,是遍历所有句柄,也就是说句柄有事件响应时,

select 需要遍历所有句柄才能获取到哪些句柄有事件通知,因此效率是非常低。

epoll 的特点:epoll 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事

件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高

3.Nginx下载安装

1. Nginx下载地址:nginx-1.13.0.tar.gz,下载到:/usr/local/software/

技术学派:Nginx超详细入门教程

2.Nginx解压安装:

tar -zxvf nginx-1.13.0.tar.gz -C ./

3.Nginx编译

./configure

报错

技术学派:Nginx超详细入门教程

3.1解决./configure: error: C compiler cc is not found错误:

错误原因:缺少编译环境,安装编译源码所需要的工具和库:

执行命令:yum install gcc gcc-c++ ncurses-devel perl

再次编译:./configure --prefix=/usr/local/nginx

技术学派:Nginx超详细入门教程

3.2解决./configure: error: the HTTP rewrite module requires the PCRElibrary.错误:

错误原因:缺少HTTP rewrite module模块,禁用或者安装所需要的模块。我们选择安装模块:

执行命令:yum install pcre pcre-devel

技术学派:Nginx超详细入门教程

3.3解决./configure: error: the HTTP gzip module requires the zliblibrary.错误:

错误原因:缺少HTTP zlib类库,我们选择安装模块:

执行命令:yuminstall zlib gzip zlib-devel

4.编译成功

技术学派:Nginx超详细入门教程

5.安装Nginx:

安装命令:make & make install

技术学派:Nginx超详细入门教程

技术学派:Nginx超详细入门教程

1.2 Nginx启动

1.查看安装目录:cd

conf 存放配置文件

html 网页文件

logs 存放日志

sbin shell启动、停止等脚本

技术学派:Nginx超详细入门教程

2.启动nginx

技术学派:Nginx超详细入门教程

查看进程

技术学派:Nginx超详细入门教程

常见问题:

技术学派:Nginx超详细入门教程

解决nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)错误:

错误原因:不能绑定80端口,80端口已经被占用。

3.停止nginx,重新加载配置文件

执行命令:kill –INT进程号

启动成功:

技术学派:Nginx超详细入门教程

重新读取配置文件:

nginx-s reload

4.Nginx信号控制

TERM, INT 快速停止(杀死进程)

QUIT 优雅的关闭进程,即等请求结束后再关闭

HUP 改变配置文件,平滑的重读配置文件

USR1 重读日志,在日志按月/日分割时有用

USR2 平滑的升级

WINCH 优雅关闭旧的进程(配合USR2进行升级)

5.打开浏览器

技术学派:Nginx超详细入门教程

1.3常用命令

进去nginx的安装目录

技术学派:Nginx超详细入门教程

进去sbin

技术学派:Nginx超详细入门教程

常用命令

启动 ./nginx

检查 nginx.conf

配置文件 ./nginx -t

重启 ./nginx -s reload

停止 ./nginx -s stop

1.4 学习Nginx推荐书籍:

  1. 《深入剖析Nginx》
  2. 《实战Nginx:取代Apache的高性能Web服务器》
  3. 《深入理解Nginx:模块开发与架构解析》
  4. 《深入理解Nginx:模块开发与架构解析》
  5. 《决战Nginx技术卷:高性能Web服务器部署与运维》
  6. 《决战Nginx系统卷:高性能Web服务器详解与运维》
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化技术,可以让开发者将应用程序及其所有依赖项打包到一个可移植的容器中,以便在任何环境中运行。以下是Docker的基础教程: 1. 安装Docker 首先,你需要在你的机器上安装Docker。可以根据你的操作系统选择合适的安装方式。可以在Docker官网上找到安装指南。 2. 创建Docker镜像 镜像是Docker中的核心概念。镜像是一个只读的模板,用于创建Docker容器。你可以创建自己的镜像,也可以从Docker Hub上下载镜像。 要创建一个Docker镜像,需要编写Dockerfile。Dockerfile是一个文本文件,其中包含一系列指令,用于构建镜像。以下是一个简单的Dockerfile示例: ``` FROM ubuntu:latest RUN apt-get update && apt-get install -y nginx EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 这个Dockerfile会从最新的Ubuntu镜像开始,安装Nginx,并将容器的80端口映射到主机的80端口。最后,它将启动Nginx。 要构建镜像,请使用以下命令: ``` docker build -t my-nginx-image . ``` 这将使用当前目录中的Dockerfile构建一个名为“my-nginx-image”的镜像。 3. 运行Docker容器 一旦你有了Docker镜像,就可以使用它来创建Docker容器。容器是镜像的一个可运行实例。 要运行一个Docker容器,请使用以下命令: ``` docker run -p 80:80 my-nginx-image ``` 这将创建一个名为“my-nginx-container”的容器,并将容器的80端口映射到主机的80端口。 4. Docker命令 以下是一些常用的Docker命令: - docker ps:列出当前正在运行的容器。 - docker images:列出当前所有的镜像。 - docker stop <container-id>:停止指定的容器。 - docker rm <container-id>:删除指定的容器。 - docker rmi <image-id>:删除指定的镜像。 这些基本的Docker命令可以帮助你管理容器和镜像。 这些是Docker的基础教程。Docker还有许多高级特性和用法,例如Docker Compose和Docker Swarm。如果你对Docker感兴趣,可以进一步习这些内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值