2019独角兽企业重金招聘Python工程师标准>>>

1、静态HTTP服务器

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

配置:

1
2
3
4
5
6
server {listen 80; # 端口号location / {root /usr/share/nginx/html; # 静态文件路径}
}

2、反向代理服务器

什么是反向代理?

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

1
2
3
4
5
6
server {listen 80;location / {proxy_pass http://192.168.0.112:8080; # 应用服务器HTTP地址}
}

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

3、负载均衡

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

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

1
2
3
4
5
6
7
8
9
10
upstream myapp {server 192.168.0.111:8080; # 应用服务器1server 192.168.0.112:8080; # 应用服务器2
}
server {listen 80;location / {proxy_pass http://myweb;}
}

4、虚拟主机

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

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

配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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)。

1
2
3
4
5
6
7
8
9
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有什么区别?下面一张图带你看明白:

转载于:https://my.oschina.net/swmhxhs/blog/1491457

啥他妈的是 Nginx?相关推荐

  1. nginx配置http、https访问,nginx指定ssl证书,阿里云腾讯云华为云设置nginx https安全访问

    nginx配置http.https访问 要设置https访问需要从对应的云厂商申请证书,并下载Nginx证书到服务器. 我这里从阿里云申请了免费的域名证书,然后将证书放置在服务器的/etc/ssl/. ...

  2. Web项目使用nginx实现代理端口访问,看这篇就够了

    在搭建服务器的时候,项目部署在tomcat上,要访问项目,则需要加上端口号,如何隐藏端口号来访问呢,这就用到了nginx. nginx可以在docker上安装,也可以在linux上安装,这里我建议使用 ...

  3. nginx介绍及常用功能

    什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务. Apache:重量级的,不支持高并发的服务器.在Apache上运行数以万计的并发访 ...

  4. Nginx搭建负载均衡集群

    (1).实验环境 youxi1 192.168.5.101 负载均衡器 youxi2 192.168.5.102 主机1 youxi3 192.168.5.103 主机2 (2).Nginx负载均衡策 ...

  5. 快速通过nginx配置域名访问

    配置nginx进行域名访问文件 在nginx安装目录下的conf目录下新建一个配置文件,比如你新加的域名为admin.hello.com,你希望通过这个域名访问admin项目,那么新建一个admin. ...

  6. Docker学习(七)-----Docker安装nginx

    基本安装 1. 拉取Nginx镜像 docker pull nginx:latest 2. 查看本地镜像列表(即可看到nginx) docker images 3. 运行容器 docker run - ...

  7. 使用阿里云服务器安装docker,并用nginx示例

    一.前言 之前对docker了解不多,自从使用了一次之后,就感觉这个产品对开发者实在是太友好了,可以迅速在Linux,window等平台部署服务.常见的有数据库,nginx,消息队列,redis等.利 ...

  8. Centos7.4安装Nginx

    Centos7.4安装Nginx 使用yum命令 一.安装准备 首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,这些依赖库主要有g++.gcc.open ...

  9. nginx将泛解析的匹配域名绑定到子目录配置方法

    应用场景: http://zzl.lteam.cn/ 访问/usr/local/boke/lteam.cn/zzl 目录下的 index.html http://lj.lteam.cn/ 访问/usr ...

  10. ubuntu搭建nginx环境

    1.首先给服务器上配置好JDK环境,之前有说过,在这就不多说了.本人安装的是JDK1.6. 2. 准备好2个TOMCAT,上传到服务器上.修改tomcat端口,所有端口必须不一致.本次演示用tomca ...

最新文章

  1. 牛逼了!这个私藏的前端 IDE 插件,撸码 6 的飞起,编程效率提高 30 倍!
  2. idea怎么搜索文件——search everywhere
  3. 异常详细信息: System.Runtime.InteropServices.COMException: 无效的类别字符串
  4. 通过用 .NET 生成自定义窗体设计器来定制应用程序
  5. win10连接烟台大学校园网
  6. 使用POI读取word文档
  7. Zipkin分布式任务追踪
  8. 遍历children_二叉树:层序遍历登场!
  9. java前端开发自动生成器_一个简单实用的java代码生成器
  10. OpenGL编程指南笔记第1章
  11. 20 个实例玩转 Java 8 Stream
  12. cst时间(utc和cst时间)
  13. 2018第七届中国金融科技峰会
  14. vue渲染大量数据优化_vue大数据表格卡顿问题的完美解决方案
  15. 叉乘 线性代数_线性代数4——向量3(叉积、外积、向量积)
  16. 2022最新独立版智狐聚合支付v1.0.5.21_聚合支付系统源码
  17. 数组排序(O(n的二次方))
  18. 控制系统Matlab仿真——校正
  19. 测试指令和位测试指令的用法-TEST
  20. 神经网络原理的简单介绍,神经网络的基本原理

热门文章

  1. 万春 读《Orange’S 一个操作系统的实现》有感
  2. 哈夫曼树以及哈夫曼编码python
  3. 数字化定量分析_制造业走向数字化:企业以提高劳动生产率来优化供应链管理...
  4. docker 容器安装conposer_docker和composer安装
  5. Android 去除头部标题
  6. Android studio3.2学习开发JNI并且生成so库教程
  7. 第五章 MNIST数字识别问题(二)
  8. SQL 函数NULLIF、NULL、ISNULL、COALESCE、IIF
  9. Tomcat,Jboss,Weblogic通过jndi连接数据库
  10. 学习V神的手把手教你写脚本引擎 一