Nginx
学习Nginx
基本用法:正向代理 && 反向代理 && 动静分离 && 负载均衡
一句话总结:正向代理屏蔽了真实的ip地址,反向代理屏蔽了服务器的位置
正向代理
- 功能
- 常用于VPN,翻墙:举一个比较简单的例子:
- 你想去问老师问题,但是你没办法直接找到老师
- 你委托一个同学去找老师
- 同学找到了老师并且老师告诉了你同学你想问的内容
- 你同学回来告诉你老师说了什么
- 相当于你成功问了老师问题
- 同学在这一个过程中起的是
代理服务器
的作用
- 常用于VPN,翻墙:举一个比较简单的例子:
- 定义
- 在客户端(浏览器)配置
代理服务器
,通过代理服务器进行互联网访问。
- 在客户端(浏览器)配置
反向代理
- 功能
- 隐藏
服务器
真实ip地址,增强安全性 - 负载均衡,将请求转发到多台后端服务器,提高性能和可用性
- 静态资源缓存,减少后端服务器压力,提升响应速度
- 隐藏
- 定义
- 我们将请求发送到
代理服务器
中,由反向代理服务器去选择目标服务器获取数据,再返回给客户端,此时可以将反向代理服务器和目标服务器视为同一个服务器,暴露了代理服务器的地址,隐藏了真实服务器地址的ip
- 我们将请求发送到
负载均衡
- 功能:很多请求打入服务器,很可能会造成崩溃,这时候需要Nginx转发请求,让每个服务器都能分摊请求。其实就是一个项目的jar包部署在多台服务器上。
动静分离
- 功能:将静态资源和动态资源分别部署在不同的服务器上,节省资源空间,加快访问速度。
在Linux上配置及使用Nginx
- 使用ssh远程链接本地的ubuntu
- ssh:SSH(Secure Shell) 是一种网络协议,用于在 不安全的网络中安全地远程登录另一台机器,比如你在 Windows 上登录一台 Linux 服务器。
- Xshell:让我们能在windows上操作Linux系统,配合Xftp实现上传下载文件
- 最终可以实现使用ip访问nginx
Nginx的配置文件
有三部分
组成
全局块
- 作用:从配置文件到events块的所有内容,主要会设置一些影响 nginx 服务器整体运行的配置命令
- 全局块配置如下:
1 | user www-data; |
比如worker_processes
这个参数,越大的话,可以支持的并发处理量也就越多
events块
- 作用:影响Nginx服务器与用户的网络连接
1 | events { |
- 比如worker_connections是支持的最大连接数
http块
- http块里又分为两块:
http全局块
和server块
配置示例
反向代理
- 实现功能:在浏览器中输入
www.123.com
跳转到linux系统中tomcat主页面中 - 首先安装tomcat
- 进入tomcat的官网,可以使用wget下载,也可以在windows下载然后使用xftp移动安装包进入
opt
- 解压 tar -zxvf 压缩包
- 启动startup.sh脚本
- 进入tomcat的官网,可以使用wget下载,也可以在windows下载然后使用xftp移动安装包进入
- 启用对外访问的端口8080
- firewall-cmd –add-port=8080/tcp –permanent
- firewall-cmd –reload
- firewall-cmd –list-all
- 修改本地的host文件夹:192.168.6.128 www.123.com(这一步是在模拟DNS解析过程,让浏览器知道我们应该跳哪)
- 反向代理配置(proxy_123.conf)
1 | server { |
- 我们本地测试时用
hosts
模拟DNS
,让浏览器能把域名解析到虚拟机的IP
。上线后就不需要这个步骤,因为 DNS 已经负责把域名解析到服务器公网 IP。浏览器发请求到服务器后,由 Nginx 判断请求路径或域名,转发到对应后端服务(不同端口),然后把返回的结果发回浏览器。这就是路径转发功能
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Explainfuture's Blog!