Nginx基本功能极速入门

http://xxgblog.com/2015/05/17/nginx-start/

本文主要介绍一些Nginx的最基本功能以及简单配置,但不包括Nginx的安装部署以及实现原理。废话不多,直接开始。

1、静态HTTP服务器

首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML、图片)通过HTTP协议展现给客户端。

配置:

123456
server {	listen 80; # 端口号	location / {		root /usr/share/nginx/html; # 静态文件路径	}}

2、反向代理服务器

什么是反向代理?

客户端本来可以直接通过HTTP协议访问某网站应用服务器,如果网站管理员在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
反向代理
配置:

123456
server {	listen 80;	location / {		proxy_pass http://192.168.20.1:8080; # 应用服务器HTTP地址	}}

既然服务器可以直接HTTP访问,为什么要在中间加上一个反向代理,不是多此一举吗?反向代理有什么作用?继续往下看,下面的负载均衡、虚拟主机,都基于反向代理实现,当然反向代理的功能也不仅仅是这些。

3、负载均衡

当网站访问量非常大,网站站长开心赚钱的同时,也摊上事儿了。因为网站越来越慢,一台服务器已经不够用了。于是将相同的应用部署在多台服务器上,将大量用户的请求分配给多台机器处理。同时带来的好处是,其中一台服务器万一挂了,只要还有其他服务器正常运行,就不会影响用户使用。

Nginx可以通过反向代理来实现负载均衡。
负载均衡
配置:

12345678910
upstream myapp {	server 192.168.20.1:8080; # 应用服务器1	server 192.168.20.2:8080; # 应用服务器2}server {	listen 80;	location / {		proxy_pass http://myapp;	}}

4、虚拟主机

的网站访问量大,需要负载均衡。然而并不是所有网站都如此出色,有的网站,由于访问量太小,需要节省成本,将多个网站部署在同一台服务器上。

例如将www.aaa.com和www.bbb.com两个网站部署在同一台服务器上,两个域名解析到同一个IP地址,但是用户通过两个域名却可以打开两个完全不同的网站,互相不影响,就像访问两个服务器一样,所以叫两个虚拟主机。

配置:

12345678910111213141516171819
server {	listen 80 default_server;	server_name _;	return 444; # 过滤其他域名的请求,返回444状态码}server {	listen 80;	server_name www.aaa.com; # www.aaa.com域名	location / {		proxy_pass http://localhost:8080; # 对应端口号8080	}}server {	listen 80;	server_name www.bbb.com; # www.bbb.com域名	location / {		proxy_pass http://localhost:8081; # 对应端口号8081	}}

在服务器8080和8081分别开了一个应用,客户端通过不同的域名访问,根据server_name可以反向代理到对应的应用服务器。

虚拟主机的原理是通过HTTP请求头中的Host是否匹配server_name来实现的,有兴趣的同学可以研究一下HTTP协议。

另外,server_name配置还可以过滤有人恶意将某些域名指向你的主机服务器。

5、FastCGI

Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架处理(例如PHP、Python、Perl)。

123456789
server {	listen 80;	location ~ \.php$ {		include fastcgi_params;		fastcgi_param SCRIPT_FILENAME /PHP文件路径$fastcgi_script_name; # PHP文件路径		fastcgi_pass 127.0.0.1:9000; # PHP-FPM地址和端口号		# 另一种方式:fastcgi_pass unix:/var/run/php5-fpm.sock;	}}

配置中将.php结尾的请求通过FashCGI交给PHP-FPM处理,PHP-FPM是PHP的一个FastCGI管理器。有关FashCGI可以查阅其他资料,本文不再介绍。

fastcgi_pass和proxy_pass有什么区别?下面一张图带你看明白:
fastcgi_pass和proxy_pass区别


1.处理静态文件,索引文件以及自动索引;  2.反向代理加速(无缓存),简单的负载均衡和容错;  3.FastCGI,简单的负载均衡和容错;  4.模块化的结构。过滤器包括gzipping,byte ranges,chunked responses,以及 SSI-filter。在SSI过滤器中,到同一个 proxy 或者 FastCGI 的多个子请求并发处理;  5.SSL 和 TLS SNI 支持;  6.IMAP/POP3代理服务功能:  7.使用外部 HTTP 认证服务器重定向用户到 IMAP/POP3 后端;  8.使用外部 HTTP 认证服务器认证用户后连接重定向到内部的 SMTP 后端;  以上nginx的基础功能。

dd

时间: 2024-11-02 04:26:48

Nginx基本功能极速入门的相关文章

Nginx的一些基本功能极速入门

本文主要介绍一些Nginx的最基本功能以及简单配置,但不包括Nginx的安装部署以及实现原理.废话不多,直接开始. 1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上的静态文件(如HTML.图片)通过HTTP协议展现给客户端. 配置: server { listen 80; # 端口号 location / { root /usr/share/nginx/html; # 静态文件路径 } } 2.反向代理服务器 什么是反向代理? 客户端本来可以直接通过HTTP协议访问某

nginx http模块开发入门

导语 本文对nginx http模块开发需要掌握的一些关键点进行了提炼,同时以开发一个简单的日志模块进行讲解,让nginx的初学者也能看完之后做到心里有谱.本文只是一个用作入门的概述. 目录 背景 主线 认识nginx http请求处理流程 日志模块开发准备 配置解析流程 挂载处理函数 获取日志数据 模块编译 完整源码 结尾 背景 网上已经有很多介绍nginx http模块开发入门的文章,但是大多以hello_word程序为例,简单讲解一下代码,看完之后可能只能够依葫芦画瓢,做不了其它事情,更不

SparkSQL极速入门 整合Kudu实现广告业务数据分析

第1章 课程介绍&学习指南本章会对这门课程进行说明并进行学习方法介绍. 第2章 为什么要学SparkSpark作为近几年最火爆的大数据处理技术,是成为大数据工程师必备的技能之一.本章节将从如下几个方面对Spark进行一个宏观上的介绍:Spark产生背景.特性.环境部署.Spark与Hadoop的对比.Spark开发语言及运行模式等. 第3章 Spark SQL快速入门Spark SQL面世已来,深受小伙伴们的喜爱,继续为Spark用户提供高性能SQL on Hadoop解决方案,还为Spark带

Nginx主要功能及使用

序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作为反向代理服务器,邮件服务器.支持FastCGI.SSL.Virtual Host.URL Rewrite.Gzip等功能.并且支持很多第三方的模块扩展. Nginx的稳定性.功能集.示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站.

AppCan开发极速入门,从0开始!

由于种种原因而不能参加AppCan线下培训,遗憾! 不喜欢视频教程的单机节奏,苦恼! AppCan线上直播课堂,冲破时间.地域.空间限制,从0开始,教你如何极速入门AppCan移动开发! 本次线上直播内容以插件的使用.项目实战为主,将线下开发者培训课程进行精简,高效的呈现给大家, 6小时即可让你快速上手移动APP开发! PS:直播课堂中老师会按需求量进行大众问题的答疑,对课程有疑问的同学请将问题统统抛过来! 1.开播时间 3月24 日-3月25日(14:30-17:30) 2.必备知识 1).H

转:Nginx RTMP 功能研究

看点: 1.    Nginx 配置信息与使用.  (支持 rtmp与HLS配置) 2.    有ffmpeg 编译与使用,    命令行方式来测试验证客户端使用. 转自:http://blog.csdn.net/cccallen/article/details/8440191 Nginx-RTMP功能调研 1. RTMP协议介绍...2 2.RTMP server.3 2.1当前的流媒体server.3 2.2Wowza功能...3 3.Nginx-based RTMP server.5 3.

网络编程懒人入门(六):史上最通俗的集线器、交换机、路由器功能原理入门

1.前言 即时通讯网整理了大量的网络编程类基础文章和资料,包括<TCP/IP协议 卷1>.<[通俗易懂]深入理解TCP协议>系列.<网络编程懒人入门>系列.<不为人知的网络编程>系列.<P2P技术详解>系列.<高性能网络编程>系列.甚至还有图文并貌+实战代码的<NIO框架入门>等,目的是帮助即时通讯类应用的开发者,至少要掌握网络编程最基本的原理,所谓知其然更要知其所以然.尤其现在移动网络大行其道的时代,在网络环境如此复杂的

《Python黑客编程之极速入门》正式开课

玄魂 玄魂工作室 今天 之前开启了一个<Python黑客编程>的系列,后来中断了,内容当时设置的比较宽,不太适合入门.现在将其拆分成两个系列<Python黑客编程之极速入门>和<Python黑客编程之网络安全>,以便初学者有一个入门和提升的过程. 我们首先开启的是<Python黑客编程之极速入门>,考虑到学习质量的保证问题, 这次采用的是培训的方式,图文教程+课后练习+答疑+案例介绍+扩展阅读. 培训目前只面向我们知识星球内部成员(加入星球自动享受该课程权益

1 小时 SQL 极速入门(三)——分析函数

转自:https://www.cnblogs.com/injet/p/10122832.html 前面两篇我们从 SQL 的最基础语法讲起,到表联结多表查询.大家可以点击链接查看1 小时 SQL 极速入门(一)1 小时 SQL 极速入门(二)今天我们讲一些在做报表和复杂计算时非常实用的分析函数.由于各个数据库函数的实现不太一样,本文基于 Oracle 12c . ROW_NUMBER()函数 这个函数在平时用的还是比较多的.这个函数的作用是为分组内的每一行返回一个行号.我们还是举例来说明.假设我