一、基础概念
1.什么是nginx?
Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。
2.正向代理和反向代理?
1.反向代理(Reverse Proxy)
反向代理(Reverse Proxy)方式是指以代理服务器(一般开通了外网访问服务)来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
故反向代理可以实现请求从外网路由到内网的转发
2.正向代理
正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。
简单一点:A向C借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替A向C借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。
3.什么是代理服务器
代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机。
4.核心配置
- server:定义一个虚拟主机,用来处理客户端请求。
- location:定义请求的URL路径和对应的处理方式。
- root:指定网站根目录,即前端项目的打包输出目录。
例如,以下是一个简单的Nginx配置文件:
http {server {listen 80;server_name example.com;location / {root /var/www/example/dist;index index.html;}}
}
上述配置中,监听80端口,当请求example.com时,会将请求转发到/var/www/example/dist目录下,并返回index.html文件。
1.nginx默认安装位置
Nginx的配置文件默认位于/etc/nginx/nginx.conf
2.upstream 参数
概念:
The ngx_http_upstream_module module is used to define groups of servers
that can be referenced by the proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass, and grpc_pass directives.
nginx关于upstream参数官方文档:http://nginx.org/en/docs/http/ngx_http_upstream_module.html
upstream 参数汇总
location参数
语法规则: location [=|~|~*|^~] /uri/ { … }
= 开头表示精确匹配
^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
/ 通用匹配,任何请求都会匹配到。
多个location配置的情况下匹配顺序为(参考资料而来,还未实际验证,试试就知道了,不必拘泥,仅供参考):
首先匹配 =,其次匹配^~, 其次是按文件中顺序的正则匹配,最后是交给 / 通用匹配。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。
三.安装部署
1.查看nginx安装的目录
whereis nginx
编辑
2.启动nginx
进入该路径:cd /usr/local/nginx/sbin
启动nginx 命令:
./nginx
出现下面启动成功
3.查看nginx进程
ps -ef | grep nginx
出现master 则启动成功
4.重启nginx命令
./nginx -s reload
6.前端部署
1.打包前端项目
在部署前端项目之前,需要先进行打包操作。通常情况下,前端项目使用Webpack等工具进行打包,将源代码转换为静态文件。打包后的文件一般存放在dist目录下。
2.部署前端项目
将打包后的前端项目文件复制到Nginx指定的网站根目录下(例如上述配置文件中的/var/www/example/dist目录)。在浏览器中访问example.com,即可看到前端项目的页面。
nginx执行流程
nginx 动静分离
静态资源和动态数据分别部署在两个不同的服务器
参考资料:
1.Nginx 简易教程https://www.cnblogs.com/jingmoxukong/p/5945200.html
2.nginx 官方文档 http://nginx.org/en/docs/
3.Nginx 负载均衡演示之 upstream 参数 & location 参数 https://blog.csdn.net/caijunsen/article/details/83002219