1 用户访问服务器的原理
1.1 用户访问本地数据库
数据库的部署地点有两种,本地和远程。访问本地服务数据库的时候要走的线路是:
本地Hosts文件---->防火墙---->服务器
hosts文件位于C:WindowsSystem32driversetc,它是将是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。简单来讲就是帮助电脑加快域名解析的。
然而访问远程数据库的时候走的路线是:
本地Hosts文件---->DNS---->防火墙---->服务器
DNS(Domain Name System)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。简单来讲你想要的使用一个域名就得先登记到互联网上,和在host文件中写入是一样的原理。
2 Nginx反向代理服务器
Nginx是一款轻量级的Web服务器反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,具备占用内存小(2M),并发量大(3W-5W),解析块(C语言编写)的特点。
2.1 反向代理
反向代理可以简单的理解为是对大哥的一种保护,由于真实的服务器在网络中一旦受到攻击就会带来数据丢失和被窃取的巨大风险,所以在互联网这个大环境中软件工程所要解决的一个问题就是对于真是服务器的保护--- 反向代理服务器,它的原理是隐藏真实服务器:
① 方向代理服务器介于用户和真实服务器之间。
② 方向代理服务器中记录的是真实服务器IP地址的映射
③ 用户访问服务器数据的时候首先访问方向代理服务器,让用户以为方向代理服务器就是真实服务器。
2.2 正向代理
正向代理走的是VPN (虚拟专用网络(VPN)的功能是:在公用网络上建立专用网络进行加密通讯。在企业网络中有广泛应用。VPN网关通过对数据包的加密和数据包目标地址的转换实现远程访问。VPN可通过服务器硬件、软件等多种方式实现。) 和反向代理最大的区别是它保护的是用户的身份,但是对于VPN来讲用户的信息是公开的,也可以实现对用户的监管。
2.3 关于Nginx的配置说明
#gzip on;
#每一个服务都是一个server
server {
# 监听的端口可重复
listen 80;
# 监听的域名不可以重复
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 开始进行反向代理
location / {
# 关键字 表示反向代理的文件目录
root html;
# 代表默认的访问路径
index index.html index.htm;
#代表发起URL
proxy_pass http://www.$$$$$
}
2.4 Nginx的下载安装
2.4.1 Windows:
注意事项:
① 安装目录中尽量不要包含中文和空格
② Nginx服务器启动的时候会创建一个守护进程。
③ 关闭Nginx服务器的时候要首先关闭守护进程
测试:安装完成请求localhost:80,显示欢迎页面即安装完成!
2.4.2 Linux:
① Linux可以使用在线安装的方式:
命令:[root@localhost src]# wget http://nginx.org/download/ngi...
② 解压
命令:[root@localhost src]# tar -xvf nginx-1.19.2.tar.gz
③ 管理文件
命令:[root@localhost src]# mv nginx-1.19.2.tar.gz soft/
命令:[root@localhost src]# mv nginx-1.19.2 nginx/
④ 编辑nginx
命令:[root@localhost nginx]# ./configure
⑤ 安装nginx
命令:[root@localhost nginx]# make install
⑥ 检查nginx安装目录
命令:[root@localhost nginx]# whereis nginx
测试
进入nginx的安装目录/usr/local/nginx/sbin
① 启动nginx
命令:[root@localhost sbin]# ./nginx
[root@localhost sbin]# ./nginx -s stop 关闭
[root@localhost sbin]# ./nginx -s reload 重启
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。