Nginx就是反向代理服务器。
首先我们先来看看什么是代理服务器,代理服务器一般是指局域网内部的机器通过代理服务发送请求到互联网上的服务器,代理服务器一般作用于客户端。比如GoAgent,FQ神器。
一个完整的代理请求过程为:客户端首先与代理服务器创建连接,然后根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或则获得目标服务器的指定资源。Web代理服务器是网络的中间实体。代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。
HTTP的代理服务器既是Web服务器又是Web客户端。
代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页,而是通过向代理服务器发送请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取的内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端,客户端必须要进行一些特别的设置才能使用正向代理。
反向代理服务器:在服务器端接收客户端的请求,然后把请求分发给具体的服务器进行处理,然后再将服务器的响应结果反馈给客户端。Nginx就是其中的一种反向代理服务器软件。
Nginx:Nginx(“engine x”),Nginx是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。也是一个IMAP/POP3/SMTP代理服务器,也就是说,Nginx本身就可以托管网站,进行HTTP服务处理,也可以作为反向代理服务器使用。
正向代理客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
反向代理正好与正向代理相反,对于客户端而言代理服务器就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理的命名空间中的内容发送普通请求,接着反向代理将判断向哪个原始服务器转交请求,并将获得的内容返回给客户端。
简单的来说就是当我们需要部署静态资源,或者部署前后端分离的项目时,可以将前端项目打包部署在nginx下,从而去减轻web服务器的压力。
首先我们需要阿里云服务器和XShell服务器远程连接工具。这两个的教程在本专栏前面的内容就有教程,不熟悉的可以先去看一下,并配置好环境。
购买阿里云教程
XShel远程连接工具教程
PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
yum install -y pcre pcre-devel
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
`yum install -y zlib zlib-devel
安装好这两个之后就可以安装nginx了,但是如果安装的时候有问题的话可能需要安装GCC和OpenSSL以下提供命令
yum install gcc-c++
yum install -y openssl openssl-devel
wget -c https://nginx.org/download/nginx-1.14.0.tar.gz
解压并进入nginx目录
tar -zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
使用nginx的默认配置
./configure
编译安装
make
make install
查找安装路径:
whereis nginx
可以看到,nginx被安装在linux的默认安装路径 /usr/local下
进入sbin目录,可以看到有一个可执行文件nginx,直接./nginx执行就OK了。
cd /usr/local/nginx/sbin
./nginx
运行起来在浏览器输入自己的服务器的ip地址,就可以访问了(nginx默认端口是80)
看到如下界面,就表示可以正常访问了
如果访问不到页面,输入
ps -ef|grep nginx
如果显示有nginx进程就说明nginx已经启动好了,那就检查一下自己服务器的安全组策略是否开放了80端口。
nginx的配置文件在/usr/local/nginx/conf下,我们打开nginx.conf进行编辑
cd /usr/local/nginx/conf
vi nginx.conf
找到如图所示位置,这里我们修改Ip为8888,当然也可以修改自己想用的,也可以不修改(注意:修改后需要在服务器的安全组中添加开放端口)。server_name修改为自己服务器的ip。
那我们如何部署自己的静态前端项目或者静态html页面呢?
这个步骤需要ftp文件传输工具,对ftp不熟悉的可以查看本专栏的FTP教程
1、对于普通的html页面,我们只需要将页面依赖到的资源放在一个文件夹中,然后使用FTP文件传输工具,将文件夹传输至服务器,移到nginx的默认项目部署路径下(/usr/local/nginx/html)
mv 文件夹 /use/local/nginx/html
然后访问
ip地址:端口号//静态资源路径
就可以在公网中访问我们的静态页面了
2、对于类似vue这种项目,我们需要将其打包,然后拿到static和index.html传到服务器,移到/usr/local/nginx/html路径下,使用同上的方式访问即可。
示例: