nginx 是近几年比较火的高性能Web服务器和反向代理服务器,下面是对nginx 的简单使用。
下载 Nginx
brew install nginx
Nginx 命令
brew services start nginx //启动
nginx -s reload //重新加载
nginx -s reopen //重启
nginx -s stop //快速停止
Nginx 配置
添加新配配置
- 在默认配置中的http 下面新增一行代码
include conf/*.conf
- 在conf 文件下面新增 nginx.conf 文件添加配置;若没有conf 文件自建
server {
....
}
修改站点目录 root
nginx 默认是html;可以根据自己的站点路径修改root 的值,root 值为绝对路径
举个🌰:
server {
listen 5000;//端口号
server_name localhost;// 服务名称
location / {
root /usr/local/etc/nginx/fe/;//root 的绝对路径
index index.html;
}
}
到此服务搭建完毕,访问localhost:5000
就可以打开网站了。
如果你的网站需要后端服务配合使用,你会发现,页面接口都是失败的。这个时候你就需要配置转发请求了
转发请求 proxy_pass
请求转发其实很简单,将root 换成proxy_pass。root表示是静态文件nginx返回;proxy_pass 说明是请求,转发到后端服务器。
server{
...
location /api/{
pass_proxy http://127.0.0.1:3000; //你的服务器地址
}
}
配置完成后,刷新页面就可以把所有的/api/
请求都代理到服务器上了。
注意
- 在nginx 中添加配置时,每一行配置都以分号结尾,否则会报错。
- 建议新建自己的配置,不要在默认配置和初始配置中修改配置信息;新建方法在上面有提到。
- location 可以正则匹配
负载均衡配置 upstream
Nginx 的负载均衡功能是非常实用的。要实现负载均衡只需要在配置中配置upstream即可。或者你也可以将proxy_pass的值换成upstream配置。
- 默认轮询方式
http {
...
upstream yourServerName {
server 106.14.13.148;
server 106.14.13.147;
...
}
server {
...
location /api/ {
proxy_pass http://yourServerName
}
}
}
- 权重方式 weight
权重越高,被访问的概率就越大。可以根据服务器的配置不同来配置不同的权重。
http {
...
upstream yourServerName {
server 106.14.13.148 weight=2;
server 106.14.13.147 weight=8;
...
}
server {
...
location /api/ {
proxy_pass http://yourServerName
}
}
}
注意:
上面这两种方式,会出现用户在一台服务器上已经登录,再次访问时会根据规则代理到不同服务器,但是登录信息丢失的问题。为了解决这类问题,Nginx 还提供了哈希分配方式。
- 哈希分配 ip_hash
哈希分配可以通过哈希算法自动定位到用户已经访问过得服务器,从而解决上面的问题。
http {
...
upstream yourServerName {
ip_hash;
server 106.14.13.148;
server 106.14.13.147;
...
}
server {
...
location /api/ {
proxy_pass http://yourServerName
}
}
}