nginx的使用教程
一、基本概念
1.1 正向代理和反向代理
(参考文档:https://www.cnblogs.com/hafiz/p/7233306.html)
假设我们给定客户端A、代理服务器B、以及最终服务器C
正向代理:代理服务器B来代替客户端A来访问最终服务器C并将最终结果转发给客户端A,站在客户端A的角度上,代理服务器代理的是客户端A,
这个过程是正向的,所以叫正向代理。(正向代理需要客户端A设置代理服务器的ip和提供代理服务的端口)
反向代理:客户端A直接访问代理服务器B,由代理服务器B来决定将请求转发到哪个最终服务器进行真正处理,并将最终服务器的处理结果转发给客户端A,
也就是代理服务器代理的是最终服务器C,站在客户端A的角度上,这个过程是反向的,所以叫反向代理。(反向代理不需要客户端A进行任何设置)。
此处有一篇讲解很全面的文章:正向代理、反向代理详解
负载均衡:负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。
通过某种负载分担技术,将外部发送来的请求按照事先设定分配算法分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。
均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。
主要用途:
- 反向代理
- 负载均衡
- 动静分离
- 网页、图片缓存
1.2 nginx.conf配置文件
nginx配置文件主要分为六个区域:
- main(全局设置)
- events(nginx工作模式)
- http(http设置)
- sever(主机设置)
- location(URL匹配)
- upstream(负载均衡服务器设置)
二、nginx配置详解
1. 安装nginx教程
环境:win10,nginx-1.15.0
nginx的下载地址:http://nginx.org/en/download.html
详解教程可参考:https://www.cnblogs.com/qfb620/p/5508468.html
下载解压后放到D盘,之后可以采用以下两种安装方式中的任意一种,效果一样。
(1)使用命令安装
进入到nginx目录D:\nginx-1.15.0\nginx-1.15.0,使用快捷键shift+鼠标右键,之后选择在此处打开powerShell窗口,
输入命令“start nginx.exe ”进行nginx的安装(当然,此处可以直接进入到)。
(2)直接进入D:\nginx-1.15.0\nginx-1.15.0文件夹下,双击nginx.exe进行安装。
注意:此处经常会有nginx默认的80端口被占用,导致无法正常安装启动nginx(可以进入D:\nginx-1.15.0\nginx-1.15.0\logs\error.log查看错误的日志),此时需要修改默认端口。
打开D:\nginx-1.15.0\nginx-1.15.0\conf\nginx.conf,如图:

在浏览器地址栏输入:127.0.0.1:8032,会看到如下图所示的nginx欢迎界面:

(3)以下是几个nginx的常用命令(win10下,linux下的命令还没有研究,等以后用到了在补充):
启动:直接点击nginx目录下的nginx.exe 或者 cmd下输入start nginx命令
关闭: nginx -s stop 或者 nginx -s quit
stop表示立即停止nginx,不保存相关信息
quit表示正常退出nginx,并保存相关信息
重启: nginx -s reload,修改配置文件以后需要重先启动
注意:一个坑就话费了几个小时(小白的悲哀啊!)
一直以为修改完nginx.conf后重先启动可以直接双击nginx.exe,今天在location模块中配置获取用户请求访问的真实服务器的时候,配置了以后一直不生效(
在chrome中始终没有配置的属性名称),一直以为是自己配置错了,以后一顿疯狂的百度研究,最后发现配置的没有问题。而是自己重新启动时有问题,因为我
一直认为nginx和Tomcat一样,重启的时候只有双击启动文件nginx.exe就可以了。实则不然,在nginx中,如果双击nginx.exe是开启了一个新的进程,只能通过命令
nginx -s reload来开启。

2. nginx集群Tomcat实现负载均衡

说明:在修改好配置文件以后必须通过nginx -s reload命令重先启动nginx后才生效。
这里采用ip_hash调度算法,使来自同一个IP的访客固定访问一个后端服务器,有效解决了动态网页存在的session共享问题。
nginx的使用教程的更多相关文章
- windows7配置Nginx+php+mysql教程
windows7配置Nginx+php+mysql教程 最近在学习php,想把自己的学习经历记录下来,并写一些经验,仅供参考交流.此文适合那些刚刚接触php,想要学习并想要自己搭建Nginx+php+ ...
- Linux下安装Nginx详细图解教程
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- Nginx 入门学习教程
昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...
- Linux下安装Nginx详细图解教程 (nginx-1.2.6)
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- Linux下nginx编译安装教程和编译参数详解
这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...
- 在Linux和Windows系统上安装Nginx服务器的教程
在Linux和Windows系统上安装Nginx服务器的教程 1.在CentOS系统上安装Nginx 在 CentOS6 版本的 EPEL 源中,已经加入了 nginx 的 rpm 包,不过此 RP ...
- CENTOS --5分钟搞定Nginx安装的教程
1. 安装gcc(centos 7之后一般已自带,可以在第6步失败后再安装) yum install gcc gcc-c++ 2. 安装pcre yum install -y pcre pcre-de ...
- Linux下安装Nginx详细图解教程(一)
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
- [译]Nginx入门引导教程
本文为[Beginner's Guide]译文,原文地址:http://nginx.org/en/docs/beginners_guide.html Guide 本教程基础的介绍了 nginx,以及能 ...
- Nginx 极简教程(快速入门)
作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. ...
随机推荐
- VisualSVN Server 服务器搭建 和 TortoiseSVN的配置和使用方法
摘自:https://blog.csdn.net/litaoshoujiao/article/details/8526136 一.VisualSVN Server的配置和使用方法[服务器端] 安装好V ...
- input 的radio checkbox 和 select 相关操作
1 select 获取和设置值,以及onchange事件 1下拉框option没有checked事件 可通过select 的 onchange事件进行监控,以获取其值 <select name ...
- 关于scrapy下载文件重命名的办法以及对应url没有文件后缀的办法
https://www.jianshu.com/p/d1bb28cbb6a8 scrapy中负责下载文件的是class MyFilesPipeline(FilesPipeline)类 其中负责下载文件 ...
- Django之URL控制器(路由层)
url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), 一.视图层路由配置系统 URL配置(URLconf)就像Django ...
- 面试必问:Spring循环依赖的三种方式
引言:循环依赖就是N个类中循环嵌套引用,如果在日常开发中我们用new 对象的方式发生这种循环依赖的话程序会在运行时一直循环调用,直至内存溢出报错.下面说一下Spring是如果解决循环依赖的. 第一种: ...
- ArrayList集合、String[]数组、String字符串
数组初始化时候必须指定长度,而ArrayList是动态数组,可以根据实际内容改变 //声明stsArr数组并初始化 String[] strArr = new String[]{ "aaa& ...
- 关于A left join B,A是否一定是主表?
一般情况,我们作左连接 select * from A left join B on A.id=B.a_id;一定认为A就是主表,其实还有另外的情况,我们若将sql改写成 select * from ...
- js获取对象的key
var obj = {"name":"名字","age":"18"};var temp = "";f ...
- Computer Study
2017.12.15日开始制定长期学习计划: 大二上: 目前短期计划: 1.每天一道PAT乙级(弄完PAT乙级)+校OJ(打基础). 2.先复习C++,17周后开始复习数据结构.(补任务 刚刚发 ...
- java后端学习路线
java基础-->java设计模式-->java数据结构与算法