Nginx反向代理

1、什么是反向代理

当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群

这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为**反向代理

2、什么是负载均衡

公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器

所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况

一句话:**nginx**会给你分配服务器压力小的去访问

3、安装OpenSSL

(1)下载OpenSSL

自己根据系统选择下载,默认安装在C盘的,我的路径默认是C:\Program Files\OpenSSL-Win64

(2)配置

以下挨着步骤进行配置,注意自己的路径。

// 1.设置环境变量
// 打开cmd 后面的路径根据自己的路径来 如果在c盘文件没有权限,换个其他位置进行配置 随后生成的证书就会放在你选择的配置路径里 我是在D:\devlib里进行配置的 set OPENSSL_CONF=C:\Program Files\OpenSSL-Win64\bin\openssl.cfg echo %OPENSSL_CONF% // 2.生成server.key
openssl genrsa -out server.key // 3.生成request文件 这一步会自行进行一些信息配置 common name的地方最好写自己的uip 就是你的局域网ip
openssl req -new -key server.key -out server.csr // 4.获取私钥 以下是一整行命令 不是两行
openssl x509 -req -days -in server.csr -signkey server.key -out server.crt

配置结束后就会在你配置的路径里看见新的三个文件,第一个就是ssl证书:

4、Nginx搭建

(1)下载

官网下载。

解压到你想放入的文件夹内,然后用cmd打开。

注意,启动nginx不能直接双击nginx.exe,会改变配置文件nginx.conf,所以需要reload

// 启动nginx
start nginx // 重启nginx
nginx -s reload // 停止nginx
nginx -s stop // 退出nginx
nginx -s quit

(2)配置SSL

打开nginx文件夹下的nginx.conf配置文件:

然后找到https server下的内容,取消注释,进行配置证书路径,这里写你证书所在路径即可:

打开你的HOST文件,一般是在这个路径C:\Windows\System32\drivers\etc

打开之后,把我圈出的位置的注释取消掉,这里我已经去掉了:

然后你在浏览器中输入https://localhost就会出现这样的页面内容:

证明搭建成功啦。

(3)反向代理Node服务

搭建Node服务器

自己使用express或者koa搭建一个简单服务器即可,设置一个自定义的监听端口。我的服务器文件取名为server.js

然后使用node server.js启动服务确保能访问。

Nginx反向代理配置

再次来到nginx.conf配置文件,将443的server location里增加圈出的内容,端口号为自己在Node服务器设置的即可,nginx反向代理主要通过proxy_pass来配置:

然后cmd输入nginx -s reload重启nginx,在浏览器输入https:localhost就可以访问到你项目的主页面了。如果在另一台局域网下的电脑浏览器中输入,就要输入成https://你的局域网ip即可访问一样的主页。

这是一个自签名证书,不能用于商用。

最新文章

  1. Android 手机卫士--导航界面2
  2. transformjs:让天下没有难做的生意!不对,是特效!
  3. 通过指定函数/方法形参类型提高PHP代码可靠性
  4. Ros集成开发环境配置
  5. kill 根据PID终止进程
  6. CSS 笔记六(Image/Attribute Selectors)
  7. Linux的别名使用
  8. Java intern()方法
  9. javascript中的元素包含判断
  10. 《jQuery实战(第二版)》读书笔记
  11. scala练手之数字转汉字小工具
  12. 我对Stub和Mock的理解
  13. js事件底层原理探究
  14. C#使用CefSharp碰到的坑(一)
  15. 使用LinkedList类生成一个集合对象,循环加入“小样1”,“小样2”,“小样3”,“小样4”,“小样5”……“小样100”。输出这个集合的大小。再使用循环删除这个集合中所有名字为偶数的对象,比如“小样6”,“小样100”,都是偶数名。最后:循环输出集合中所有的对象,看是否删除成功。
  16. Spring 快速开始 启动Spring
  17. win10装MySQL5.7
  18. js 获取数组重复的元素
  19. linux:centOs7换源阿里云
  20. JAVA_概念01_跨域

热门文章

  1. Eclipse安装STS插件两种方式
  2. spring mvc中的@Entity是什么意思?
  3. 使用 localstorage 写入浏览器并获取
  4. (转)原理到实现 | K8S 存储之 NFS
  5. P1982小朋友的数字
  6. JS-让浏览器兼容ES6特性
  7. 校内模拟赛T5:连续的“包含”子串长度( nekameleoni?) —— 线段树单点修改,区间查询 + 尺取法合并
  8. [LeetCode] 182.查找重复的电子邮箱
  9. 攻防世界--Shuffle
  10. 一些常见的js校验