目录

  • Nginx介绍
    • 一、Nginx介绍
    • 二、为什么选择Nginx
    • 三、Nginx和Apache对比
  • Nginx安装部署
    • 一、nginx源码下载
    • 二、nginx安装
    • 三、nginx相关目录
    • 四、nginx启动管理
    • 五、nginx启动测试
  • 默认网站
    • 一、默认网站
    • 二、访问控制
    • 三、登陆验证
    • 四、日志管理
    • 五、防盗链
  • 虚拟主机
    • 一、虚拟主机介绍
    • 二、基于IP的虚拟主机
      • 基于IP的虚拟主机特点
    • 三、基于端口的虚拟主机
      • 基于端口的虚拟主机特点
    • 四、基于域名的虚拟主机
      • 基于域名的虚拟主机特点

Nginx介绍

一、Nginx介绍

Nginx(“engine x”)是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。和apache一样,都是web服务器软件,因为其性能优异,所以被广大运维喜欢。又因为nginx是一个轻量级的web服务器,相比apache来说资源消耗更低

延伸版本:tengine(淘宝)、openresrt(章亦春)等

  • http://nginx.org 官网
  • http://www.nginx.cn/doc/index.html 中文文档

二、为什么选择Nginx

Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性:

作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型.

作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。

作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器),Last.fm 描述了成功并且美妙的使用经验。

Nginx 安装非常的简单,配置文件 非常简洁(还能够支持perl语法),Bugs非常少的服务器: Nginx 启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动。你还能够在 不间断服务的情况下进行软件版本的升级。

三、Nginx和Apache对比

  • 静态文件处理能力:nginx高于apache
  • 资源消耗:nginx优于apache,因为nginx是异步处理模型,只需要几个进程就能够处理大量在线请求,而apache 2.4仍然是进程模型或者线程模型,即仍然采用大量线程来处理大量在线请求。
  • Apache支持的模块很多,而且也比较稳定。而nginx由于出现的比较晚,所以在这方面可能比不上Apache。
  • nginx本身就是一个反向代理服务器,而且支持7层负载均衡。
  • nginx处理动态页面很鸡肋,一般只用与处理静态页面和反向代理。

Nginx安装部署

一、nginx源码下载

官网:http://nginx.org/

源码包:nginx-1.19.3.tar.gz

源码包下载:wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src

二、nginx安装

2.1、下载nginx源码包
[root@zutuanxue ~]# wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/src
[root@zutuanxue src]# cd /usr/src2.2、安装nginx依赖包
[root@zutuanxue ~]# yum -y install gcc pcre-devel zlib-devel- gcc: 源码编译工具 - pcre-devel: nginx url_rewrite 功能提供包 - zlib-devel: nginx 压缩功能提供包  2.3、解压nginx源码,并进入源码包
[root@zutuanxue src]# tar xf nginx-1.19.3.tar.gz
[root@zutuanxue src]# cd nginx-1.19.32.4、配置nginx源码[root@zutuanxue nginx-1.19.3]# ./configure --prefix=/usr/local/nginx配置目的:1)检查环境 是否 满足安装条件     依赖解决2)指定安装方式    配置文件   命令文件  各种文件放哪里   开启模块功能【内置模块  三方模块】3)指定软件安装在那里2.5、编译nginx源码
[root@zutuanxue nginx-1.19.3]# make -j42.6、安装nginx
[root@zutuanxue nginx-1.19.3]# make install

三、nginx相关目录

nginx path prefix: “/usr/local/nginx”nginx binary file: “/usr/local/nginx/sbin/nginx”nginx modules path: “/usr/local/nginx/modules”nginx configuration prefix: “/usr/local/nginx/conf”nginx configuration file: “/usr/local/nginx/conf/nginx.conf”nginx pid file: “/usr/local/nginx/logs/nginx.pid”nginx error log file: “/usr/local/nginx/logs/error.log”nginx http access log file: “/usr/local/nginx/logs/access.log”

四、nginx启动管理

配置文件测试:/usr/local/nginx/sbin/nginx -t

Nginx启动:/usr/local/nginx/sbin/nginx

Nginx关闭:killall –s QUIT nginx

五、nginx启动测试

nginx安装完毕,接下来就可以启动nginx了,nginx启动后如何测试nginx的启动状态呢?可以通过以下三种方式去测试,这个可以根据自己的习惯选择一种测试就行了。

  • 使用netsata命令查看启动端口
    [root@zutuanxue ~]# netstat –ntpl
  • 使用losf命令查看启动端口
    [root@zutuanxue ~]# lsof -i :80
  • 使用文本浏览器访问nginx默认网站
    [root@zutuanxue ~]# elinks http://IP
    测试内容:

默认网站

一、默认网站

server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;#支持目录浏览autoindex  on;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}

二、访问控制

location /a {autoindex on;allow 192.168.12.0/24;deny all;#基于客户端IP做过滤,符合条件的允许访问,不符合的返回404;if ( $remote_addr !~ "192.168.12" ) {#return 404;return http://book.ayitula.com;}}

三、登陆验证

location /c {auth_basic "登陆验证";auth_basic_user_file /etc/nginx/htpasswd;}

四、日志管理

Nginx访问日志主要有两个参数控制

log_format #用来定义记录日志的格式(可以定义多种日志格式,取不同名字即可)

access_log #用来指定日至文件的路径及使用的何种日志格式记录日志

access_log logs/access.log main;

log_format格式变量:$remote_addr  #记录访问网站的客户端地址$remote_user  #远程客户端用户名$time_local  #记录访问时间与时区$request  #用户的http请求起始行信息$status  #http状态码,记录请求返回的状态码,例如:200、301、404等$body_bytes_sent  #服务器发送给客户端的响应body字节数$http_referer  #记录此次请求是从哪个连接访问过来的,可以根据该参数进行防盗链设置。$http_user_agent  #记录客户端访问信息,例如:浏览器、手机客户端等$http_x_forwarded_for  #当前端有代理服务器时,设置web节点记录客户端地址的配置,此参数生效的前提是代理服务器也要进行相关的x_forwarded_for设置

自定义一个json格式的访问日志

log_format main_json '{"@timestamp":"$time_local",'
'"client_ip": "$remote_addr",'
'"request": "$request",'
'"status": "$status",'
'"bytes": "$body_bytes_sent",'
'"x_forwarded": "$http_x_forwarded_for",'
'"referer": "$http_referer"'
'}';
access_log logs/access_json.log main_json;

日志截断

mv access.log access.log.0killall -USR1 \`cat master.nginx.pid\`sleep 1gzip access.log.0

五、防盗链

location /images/ {
alias /data/images/;
valid_referers none blocked *.ayitula.com;if ($invalid_referer) {rewrite ^/  http://www.ayitula.com/daolian.gif;#return 403;}
}

虚拟主机

一、虚拟主机介绍

虚拟主机 就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录,可以独立发布一个网站。

实验案例: 同时发布两个网站:

  • DocumentRoot /usr/local/nginx/html/web1
  • DocumentRoot /usr/local/nginx/html/web2

二、基于IP的虚拟主机

应用场景:IP充足的环境,每个网站需要一个IP地址

server {listen       192.168.11.251:80;location / {root   html/web1;index  index.html index.htm index.php;}
}
server {listen       192.168.11.252:80;
location / {root   html/web2;index  index.html index.htm;}
}

基于IP的虚拟主机特点

  • 不同IP对应不同网站
  • 访问方便,用户直接使用默认端口即可访问
  • 服务器需要有多个IP地址(一个公网IP大概一年的费用是600左右)
  • 维护方便,基于独立IP的站点,便于监控、维护。

三、基于端口的虚拟主机

应用场景:IP不足的环境

  • 优点: 多个网站发布使用该配置方法只需要一个IP,节省IP地址
  • 缺点 端口你是无法告诉公网用户,无法适用于公网客户,适合内部用户
基于端口
server {listen       80;#server_name  www.zutuanxue.com;location / {root   html/web1;index  index.html index.htm index.php;}
}
server {listen       8080;#server_name  www.zutuanxue.com;location / {root   html/web2;index  index.html index.htm;}
}

基于端口的虚拟主机特点

  • 不同端口对应不同网站
  • 访问需要加端口
  • 节省IP地址
  • 适合私网运行

四、基于域名的虚拟主机

应用场景:一个网站需要有一个域名,目前公网发布网站的首选

基于域名
server {listen       80;server_name  web1.zutuanxue.com;location / {root   html/web1;index  index.html index.htm index.php;}
}server {listen       80;server_name  web2.zutuanxue.com;location / {root   html/web2;index  index.html index.htm;}
}

基于域名的虚拟主机特点

  • 不同域名对应不同网站
  • 需要多个域名 可以是二级或三级域名
  • 每个站点使用默认端口,方便用户访问
  • 只需要一个IP地址,节约成本
  • 适合公网环境

Nginx从入门到精通相关推荐

  1. 千言万句,Nginx从入门到精通,看这一篇足矣

    本文是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx. Nginx 简介 什么是 Nginx? Nginx(engine x)是一款轻量级的 Web 服务器 .反向代理服务器及电子邮 ...

  2. NGINX由入门到精通:Nginx介绍

    原文:http://www.aosabook.org/en/nginx.html nginx(发音"engine x")是俄罗斯软件工程师Igor Sysoev开发的免费开源web ...

  3. 2018最新Nginx从入门到精通5阶段视频教程附代码(Http代理+负载均衡+静动分离)

    课程介绍 系统讲解Nginx ,课程通用性非常高,几乎所有与后台相关的技术人员都会用到,了解Nginx 的人很多,但真正掌握Nginx 的却很少,系统掌握Nginx配置与快速搭建高可用架构的技术方法. ...

  4. Docker零基础从入门到精通(全)

    目录 前言 1. Docker介绍 1.1 Docker的安装 1.2 Docker的卸载 2. 配置阿里云镜像加速 3. Docker原理 3. docker常用命令 3.1 镜像命令 3.2 容器 ...

  5. java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)

    目录 前言 1. 学习路线 2. 学习方法 前言 这篇文章主要总结我之前所学过的框架以及学习路线 从实打实的零基础到框架再到项目 之后实习工作 也在这篇博客中记录我的学习笔记 以及在笔记中遇到的配置安 ...

  6. Nginx开发从入门到精通

    Nginx开发从入门到精通 缘起 nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部原理 ...

  7. nginx开发从入门到精通 http://tengine.taobao.org/book/

    nginx开发从入门到精通 http://tengine.taobao.org/book/

  8. 免费下载《Nginx教程从入门到精通》.pdf

    关注"Java后端技术全栈" 回复"面试"获取全套面试资料 什么是Nginx? Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/P ...

  9. java从入门到精通_想要开始学java?你要的java从入门到精通布列如下!

    java从入门到精通,让我来告诉你! 毫无疑问,java是当下最火的编程语言之一.对于许多未曾涉足计算机编程的领域「小白」来说,深入地掌握java看似是一件十分困难的事.其实,只要掌握了科学的学习方法 ...

  10. meteor从入门到精通_我已经大规模运行Meteor一年了。 这就是我所学到的。

    meteor从入门到精通 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 我已经大规模运行Meteor一年了. 这就是我所学到的. (I've been runni ...

最新文章

  1. Web应用里的HTTP参数污染(HPP漏洞)
  2. 家用电脑配置_家用电脑无需太高配置,不要听电脑店瞎忽悠,2500元机子够用了!...
  3. How to resolve error message Malformed URI literal syntax
  4. 【专升本计算机】甘肃省专升本计算机C语言经典程序案例代码合集(持续更新)
  5. ssl2346-联络员【图论,最小生成树】
  6. 【原理+实战+视频+源码】docker权限参数
  7. 8位可控加减法器_行测高分技巧-资料分析之有效数字加减法取舍
  8. 腾讯大数据之TDW计算引擎解析——Shuffle
  9. 【亚伦博客】我们勇敢的审查者
  10. [NOI2014]动物园
  11. gvim 命令行粘贴_vim-如何在光标所在的行中粘贴?
  12. 解决keil注册机和编译错误的问题2020-12-28
  13. 老板口中的一区二区是什么意思?
  14. Android图片剪裁库:uCrop
  15. ABB控制器800模块AC800F/PM802F
  16. 服务器网卡支持25G,25G服务器网卡光模块解决方案
  17. 用stream流将list集合根据某个字段分组成Map<String,List<T>>类型的集合
  18. 微服务生态组件之Spring Cloud LoadBalancer详解和源码分析
  19. Keepalived + Nginx - linux 灾备方案(实现主备、热备)
  20. http状态码有哪些?代表什么意思?(查询手册而已)

热门文章

  1. Unity 3D中的内存管理
  2. 使用代理IP软件需要了解的三个概念
  3. 大学计算机基础流媒体,大学计算机基础经典课件.ppt
  4. 论文---基于B/S中小型酒店客房管理系统的设计与实现
  5. mysql 网页员工登记表_作业1:小型考勤登记表
  6. labview获取窗口句柄_LabVIEW调用WindowsAPI函数实现VI窗口置顶
  7. 仿iPhone通讯录制作小程序自定义选择组件
  8. 希赛网软考学院将会使系分大大贬值
  9. 云计算平台是什么意思?可以划分为哪三类?
  10. 开发者 发展 9 心智模式