石一歌的Nginx笔记
Nginx
Http 代理,反向代理:作为 web 服务器最常用的功能之一,尤其是反向代理。
Tengine是淘宝开源的Nginx升级版,兼容Nginx,也可以考虑。
作用
-
Http代理
-
反向代理
-
负载均衡
-
轮询
最基本的配置方法,上面的例子就是轮询的方式,它是upstream模块默认的负载均衡默认策略。每个请求会按时间顺序逐一分配到不同的后端服务器。
-
weight
权重方式,在轮询策略的基础上指定轮询的几率。
-
ip_hash
指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。
-
least_conn
把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。
-
fair(第三方)
按照服务器端的响应时间来分配请求,响应时间短的优先分配。
-
url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再此收到请求,就可以从缓存中读取。
-
安装
Window(看看就好,服务器都是Linux)
-
下载
-
启动
- 直接双击 nginx.exe,双击后一个黑色的弹窗一闪而过
- 打开 cmd 命令窗口,切换到 nginx 解压目录下,输入命令
nginx.exe
,回车
-
配置监听
- nginx 的配置文件是 conf 目录下的 nginx.conf,默认配置的 nginx 监听的端口为 80,如果 80 端口被占用可以修改为未被占用的端口
nginx -s reload
重启配置生效
-
关闭
-
输入 nginx 命令
nginx -s stop
(快速停止 nginx) 或nginx -s quit
(完整有序的停止 nginx) -
使用 taskkill
taskkill /f /t /im nginx.exe
taskkill是用来终止进程的,
/f是强制终止 .
/t终止指定的进程和任何由此启动的子进程。
/im示指定的进程名称 .
-
Linux
-
基础环境
-
gcc 安装
安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
yum install gcc-c++
-
PCRE pcre-devel 安装
PCRE(Perl Compatible Regular Expressions) 是一个 Perl 库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx 也需要此库。命令:
yum install -y pcre pcre-devel
-
zlib 安装
zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
yum install -y zlib zlib-devel
-
OpenSSL 安装
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在 ssl 协议上传输 http),所以需要在 Centos 安装 OpenSSL 库。yum install -y openssl openssl-devel
-
一条命令安装环境
yum -y install gcc-c++ zlib-devel openssl-devel libtool
-
-
下载nginx安装包并解压
cd /usr/local wget http://nginx.org/download/nginx-1.14.0.tar.gz tar -zxvf nginx-1.14.0.tar.gz
-
配置和安装
cd nginx-1.14.0 ./configure --prefix=/usr/local/nginx #把所有资源文件放在/usr/local/nginx的路径中。 make && make install
-
使用
cd ../nginx/sbin ./nginx #启动 ./nginx -s reload #重启 ./nginx -s stop #关闭 ps -aux | grep nginx #查看相关
-
问题
-
新服务器需要检查相关端口 防火墙和安全组(阿里云控制台),相关命令在Linux笔记中,不再赘述
-
新手建议直接关闭防火墙
service firewalld stop
-
-
/conf/nginx.conf
server { listen 80; //服务器映射端口号 server_name localhost; location / { root /usr/local/Deploy/springboot-vue/vue/dist; //前端项目文件夹地址 index index.html index.htm; } location /api { proxy_pass http://localhost:9090/; //前端项目端口号 } ... }