由于微信小程序要使用Https,但是又不能修改已有线上的配置。所以最简单的方法就是使用nginx转发,在nginx上使用https,然后再转发到内部服务器。Nginx由于其优良的性能。一台4核16GB的内存完全可以支撑日均百万pv级别的访问。

基础知识

Nginx由于使用了 epoll模型,要求linux的内核必须在2.6以上。要了解epoll模型,可以看看知乎上的这篇文章:IO多路复用与 select,poll与epoll的关系

使用 uname -a 查看Linux 内核版本,如下是Centos 6.5的显示:

    

下载

Nginx 的官网的下载地址:http://nginx.org/en/download.html。
Nginx官网提供了三个类型的版本:

  • Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版

  • Stable version:最新稳定版,生产环境上建议使用的版本

  • Legacy versions:遗留的老版本的稳定版

编译与安装

nginx依赖以下模块:

  • gzip模块需要 zlib 库 及其开发环境

  • rewrite模块需要 pcre 库及开发环境

  • ssl 功能需要openssl库及开发环境以及 yum install -y gcc-c++ 环境。

  以gzip 模块为例,查看以下模块是否安装:

    

如果没有安装,那么就 yum -y install zlib zlib-devel。

make是用来编译的,它从Makefile中读取指令,然后编译。make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。

最简单的编译安装 Nginx

tar zxvf nginx-1.10.2.tar.gz
解压以后进入到

    

./configure 是用来检查本机的的安装环境。在configure阶段结束以后,将会出现如下信息:

    

可以看到默认的安装目录以及一些基本的配置。

启动

nginx默认采用80端口,在直接启动nginx之前,先检查80端口是否被占用,使用fuser -n tcp 80或者netstat -pan | grep :80查看80端口是否被占用。这里假设没有被占用,然后进入 /usr/local/nginx(上文提到的默认安装目录)目录:

    

访问:http://ip:80/就可以看到nginx的欢迎页面。

nginx配置

在/usr/local/nginx/conf(默认配置)中,有一个nginx.conf文件。nginx.conf的代码是这样的:

    

删掉不必要的文件,基本文件类型是这个样子:

    

注意到最顶上的日志配置吗?在顶部设置的配置全局生效。但是子模块可以覆盖它。顶部日志配置:

    

假设开发人员改变了nginx.conf配置,测试nginx.conf是否合法:

    

nginx配置文件架构的图

    

这里有详细的配置:http://www.cszhi.com/20120513/nginx_nginx-conf.html

###https

在编译阶段需要附带编译上ssl模块:./configure --with-http_ssl_module

限流

http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

    

注意在Http中配置以后需要在server中引入。

burst一秒中可以访问的数据量。burst相当于一个授权令牌,每秒中每次查询,当前burst-1,查询结束,burst+1;
如果burst为0时,访问不了。

    

可以看到,基本上是1秒返回一次了。

实例配置

    

关于Nginx理解的更多相关文章

  1. nginx理解与配置

    准备: http服务器:①tomcat②apache③nginx(c语言开发) 文件系统:①mgfs ②mgbd:存储小文件 ③fastDFS:存储大文件.小文件,分布式文件系统 nginx是一种ht ...

  2. Nginx理解

    说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了.摘一段百度百科上的描述: 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后 ...

  3. nginx —— 理解nginx_upstream_jvm_route模块解决tomcat多节点session不一致问题

    这种方式不需要修改web工程只需要对nginx下载nginx_upstream_jvm_route插件,修改tomcat和nginx配置,就能解决session问题.由于这种方式不会把session存 ...

  4. Linux安装Nginx以及简单理解

    1.Nginx简单介绍 ①.Nginx:一个高性能的HTTP和反向代理服务器,高并发处理很不错. ②.反向代理:在计算机世界里,由于单个服务器的处理客户端(用户)请求能力有一个极限,当用户的接入请求蜂 ...

  5. 深入理解PHP之:Nginx 与 FPM 的工作机制

    网络上有很多关于如何配置 Nginx + FPM 的文章,但它们更多从操作的角度出发,告诉我们怎么做,但却没有告诉我们为什么要这么做,本文从 Nginx 与 FPM 的工作机制出发,探讨配置背后的原理 ...

  6. Nginx和php是怎么通信的?

    先来看一下搭建好PHP运行环境的Nginx配置文件. 非常重要的就是 fastcgi_pass 指令了,这个指令用于指定 fpm 进程监听的地址,Nginx 会把所有的 php 请求翻译成 fastc ...

  7. Nginx与PHP如何协同工作

    要说Nginx与PHP如何协同工作,首先得说CGI和FastCGI两个协议. CGI是Web Server与后台语言交互的协议,有了这个协议,开发者可以使用任何语言处理Web Server发来的请求, ...

  8. 配置域名与Https

    前言 在之前的内容里,我们已经实现了部署SpringBoot项目到云服务器,但是当时用的是直接通过ip+端口的方式访问的,在之后如果是想对接上自己开发的小程序的话,必须要https的地址才行,因此今天 ...

  9. 读书笔记之深入理解Nginx:模块开发与结构解析

    前言 我现在看书一般都是看自己能看懂的地方,看不懂就先略过,回头再看,下面就写自己看得懂的地方吧,并且把自己的理解也放到里面. 第一部分 Nginx能帮我们做什么 编译安装各个命令解释 configu ...

随机推荐

  1. 【分布式】1、CAP原则(CAP定理)、BASE理论

    CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性). Availability(可用性).Partition tolerance(分区容错性),三者不可得兼. CA ...

  2. 基于Zookeeper的分布式锁

    实现分布式锁目前有三种流行方案,分别为基于数据库.Redis.Zookeeper的方案,其中前两种方案网络上有很多资料可以参考,本文不做展开.我们来看下使用Zookeeper如何实现分布式锁. 什么是 ...

  3. Contest2073 - 湖南多校对抗赛(2015.04.06)

    Contest2073 - 湖南多校对抗赛(2015.04.06) Problem A: (More) Multiplication Time Limit: 1 Sec  Memory Limit:  ...

  4. 如何在UWP中统一处理不同设备间的页面回退逻辑

    已经有一段时间没有写博客来记录自己的学习点滴了.现在回想起来确实有些惭愧,期间经历了一些事情,到目前为止算是平息了,是时候该收收心来充实自己了. 在本篇缪文中,楼主打算给UWP开发的初学者讲述一个在开 ...

  5. 5大JavaScript前端框架简介

    译者按: 简要介绍五大前端框架特性 原文: Top 5 JavaScript Frameworks 译者: Fundebug 为了保证可读性,本文采用意译而非直译.另外,本文版权归原作者所有,翻译仅用 ...

  6. 【读书笔记】iOS-iOS流媒体

    在网络上直接看电影已经不是什么新鲜的事情,在iOS等移动设备上也有很多在线视频应用,如国内的PPS和PPLive应用,还有一些新闻视频都可以在线观看,如USA TODY.所以这些在线视频都采用流媒体技 ...

  7. parseInt转换

    function parse2Int(num) { return parseInt(num,10); } 如果 string 以 "0x" 开头,parseInt() 会把 str ...

  8. css制作表格

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. spring BeanFactory及ApplicationContext中Bean的生命周期

    spring bean 的生命周期 spring BeanFactory及ApplicationContext在读取配置文件后.实例化bean前后.设置bean的属性前后这些点都可以通过实现接口添加我 ...

  10. dmesg七种用法

    dmesg 命令的使用范例 ‘dmesg’命令设备故障的诊断是非常重要的.在‘dmesg’命令的帮助下进行硬件的连接或断开连接操作时,我们可以看到硬件的检测或者断开连接的信息.‘dmesg’命令在多数 ...