文章插图
为什么使用反向代理,原因如下:
- 保护和隐藏原始资源服务器
- 加密和 SSL 加速
- 通过缓存静态资源,加速 Web 请求
- 实现负载均衡
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力 。
这里指的就是让动态程序(Java、PHP)去访问应用服务器,让缓存、图片、JS、css 等去访问 Nginx 。
Nginx 安装
①下载Nginx:
wgethttp://nginx.org/download/nginx-1.16.1.tar.gz
②安装需要编译的插件:- 用于编译 C、C++ 代码的 GCC 。
- 用 C 语言编写的正则表达式函数库 Pcre(使用 Rewrite 模块) 。
- 用于数据压缩的函式库的 Zlib 。
- 安全套接字层密码库 OpenSSL(启用 SSL 支持) 。
yuminstallgccc++yuminstall-ypcrepcre-develyuminstall-yzlibzlib-develyuminstall-yopensslopenssl-devel
③解压、配置(Nginx 支持各种配置选项 )、编译、安装 Nginx:tar-zxvfnginx-1.15.tar.gzcdnginx-1.16.1cdnginx-1.16.1./configuremake&&sudomakeinstall
④启动、重启、关闭:cd/usr/local/nginx/cdsbin./nginx#关闭命令./nginx-sstop#重启,热部署./nginx-sreload#修改配置文件后也别嘚瑟,反正我会动不动就写错,检查修改的nginx.conf配置是否正确./nginx-t
文章插图
⑤验证(浏览器输入 IP):
文章插图
配置文件
nginx.conf 配置文件主要分为三部分:
- 全局块
- Events 块
- HTTPS 块
- 配置文件由指令和指令块构成
- 每条指令以分号(;)结尾,指令和参数间以空格符分隔
- 指令块以大括号{}将多条指令组织在一起
- include 语句允许组合多个配置文件以提高可维护性
- 使用 # 添加注释
- 使用 $ 定义变量
- 部分指令的参数支持正则表达式
全局配置部分用来配置对整个 Server 都有效的参数 。主要会设置一些影响 Nginx 服务器整体运行的配置指令,包括配置运行 Nginx 服务器的用户(组)、允许生成的 Worker Process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等 。
示例如下:
usernobody;worker_processes4;error_log/data/nginx/logs/error.lognotice;
Events 块Events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 Work Process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word Process 可以同时支持的最大连接数等 。
events{#每个workprocess支持的最大连接数为1024.worker_connections1024;}
HTTP 块这算是 Nginx 服务器配置中最频繁的部分,代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里 。需要注意的是:HTTP 块也可以包括 HTTP 全局块、Server 块 。
①HTTP 全局块HTTP 全局块配置的指令包括文件引入、MIME-TYPE 定义、日志自定义、连接超时时间、单链接请求数上限等 。
http{includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout65;
②Server 块这块和虚拟主机有密切关系,虚拟主机从用户角度看,和一台独立的硬件主机是完全一样的,该技术的产生是为了节省互联网服务器硬件成本 。每个 HTTP 块可以包括多个 Server 块,而每个 Server 块就相当于一个虚拟主机 。
而每个 Server 块也分为全局 Server 块,以及可以同时包含多个 Locaton 块 。
全局 Server 块:也被叫做“虚拟服务器”部分,它描述的是一组根据不同server_name指令逻辑分割的资源,这些虚拟服务器响应 HTTP 请求,因此都包含在 HTTP 部分 。
最常见的配置是本虚拟机主机的监听配置和本虚拟主机的名称或 IP 配置 。
server{listen80;#server_name也支持通配符,*.example.com、www.example.*、.example.comserver_namelocalhost;#charsetkoi8-r;#access_loglogs/host.access.logmain;
Location 块:一个 Server 块可以配置多个 Location 块 。
推荐阅读
- 主流NOSQL的比较与技术选型
- 排名前20位最受欢迎的黑客工具
- 如何成为百度搜索的精选摘要?
- 9层妖塔在青海哪个地方? 青海的九层妖塔
- docker基础篇-安装
- 性取向的分类 什么叫第四性取向
- 我的网站真的需要云负载均衡器吗?
- 16种编程语言是如何命名的?
- Nginx+SpringBoot实现负载均衡
- 中国文化中的茶影像概说