Nginx部署前端项目
Nginx 是一个高性能的HTTP和反向代理服务器。作为前端开发的同学,了解反向代理的概念是非常必要的,特别是在构建现代应用时。
反向代理的基本概念
反向代理与正向代理的区别在于代理对象的不同。正向代理是客户端主动通过代理服务器访问互联网,例如使用 VPN 翻墙。当我们访问国外网站时,可能会遇到速度慢或无法访问的问题,这时正向代理可以帮助我们解决这些问题。
与之相对,反向代理则是在服务器端,通过反向代理服务器来选择目标服务器处理请求。客户端无需配置,只需将请求发送到反向代理服务器,由它来获取数据并返回给客户端。这种方式不仅隐藏了真实服务器的 IP 地址,还能够将请求分发到多台后端服务器,从而提高系统的可用性和负载均衡能力,增强整体安全性。
反向代理工作原理
客户端配置代理服务器,通过代理服务器进行互联网访问。代理对象是客户端,而服务端则隐藏在反向代理之后。简单来说,当用户请求资源时,反向代理服务器会处理这些请求并转发到合适的后端服务器。这样,外部用户只需知道反向代理的地址,而不需要知道真实的服务器地址。
nginx的配置文件目录
- /etc/nginx/nginx.conf 核心配置文件
- /etc/nginx/conf.d/default.conf 默认http服务器配置文件
- /etc/nginx/fastcgi_params fastcgi配置
- /etc/nginx/scgi_params scgi配置
- /etc/nginx/uwsgi_params uwsgi配置
- /etc/nginx/koi-utf
- /etc/nginx/koi-win
- /etc/nginx/win-utf 这三个文件是编码映射文件,因为作者是俄国人
- /etc/nginx/mime.types 设置HTTP协议的Content-Type与扩展名对应关系的文件
- /usr/lib/systemd/system/nginx-debug.service
- /usr/lib/systemd/system/nginx.service
- /etc/sysconfig/nginx
- /etc/sysconfig/nginx-debug 这四个文件是用来配置守护进程管理的
- /etc/nginx/modules 基本共享库和内核模块
- /usr/share/doc/nginx-1.18.0 帮助文档
- /usr/share/doc/nginx-1.18.0/COPYRIGHT 版权声明
- /usr/share/man/man8/nginx.8.gz 手册
- /var/cache/nginx Nginx的缓存目录
- /var/log/nginx Nginx的日志目录
- /usr/sbin/nginx 可执行命令
- /usr/sbin/nginx-debug 调试执行可执行命令
nginx核心模块
nginx的核心配置文件nginx.conf主要由3个部分组成:
基本配置
#user nobody; #配置worker进程运行用户
worker_processes 1; #配置工作进程数目,根据硬件调整,通常等于CPU数量或者2倍于CPU数量
#error_log logs/error.log; # 配置全局错误日志及类型
events配置
events {
worker_connections 1024; #配置每个worker进程连接数上限,nginx支持的总连接数等于worker_connections*worker_processes
}
http基本配置
http {
include mime.types;
default_type application/octet-stream;
client_max_body_size 100m;
sendfile on; #开启高效文件传输模式
#tcp_nopush on; #防止网络阻塞
keepalive_timeout 0;
gzip on; //启动
gzip_buffers 32 4K;
gzip_comp_level 6; //压缩级别,1-10,数字越大压缩的越好
gzip_min_length 100; //不压缩临界值,大于100的才压缩,一般不用改
gzip_types application/javascript text/css text/xml;
}
client_max_body_size
表示 客户端请求服务器最大允许大小,如果请求正文数据大于设定值,HTTP协议会报413错误Request Entity Too Large
,如果需要上传大文件是需要修改这个值的。keepalive_timeout
:长连接超时时间,单位是秒,Nginx
使用keepalive_timeout
来指定KeepAlive
的超时时间(timeout)。指定每个 TCP 连接最多可以保持多长时间。
Nginx 的默认值是 75 秒,有些浏览器最多只保持60
秒,所以可以设定为60
秒。若将它设置为 0,就禁止了 keepali