写点什么

Nginx- 基本概念和使用

用户头像
Rubble
关注
发布于: 3 小时前
Nginx-基本概念和使用

(engine x)是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。其特点是占有内存少,并发能力强。


Nginx 可以做反向代理,实现负载均衡;


正向代理


在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。代理对象是客户端,不知道服务端是谁。


客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后再返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器 IP 地址。代理对象是服务端,不知道客户端是谁。


负载均衡


客户端发送多个请求到服务器,服务器处理请求,有些可能要访问数据库,服务器处理完毕后再将结果返回客户端。


master 接收信号后将任务分配给 worker 进行执行,worker 可有多个。


每个 woker 是独立的进程,可以使用 nginx –s reload 热部署。


mac 安装 nginx


brew install nginx
复制代码


启动 nginx


brew services start nginx
复制代码


安装目录 /usr/local/Cellar/nginx


配置目录 /usr/local/etc/nginx 配置文件 nginx.conf


nginx.conf 配置文件内include servers/*; 指定了 servers 目录下的所有配置文件

静态页面

配置了 nginx 页面 服务地址 localhost:8080 指向静态文件


root 目录 指向安装目录/usr/local/Cellar/nginx 下的 html 文件夹,html 文件是一个软连接 指向 html -> ../../../var/www 即 /usr/local/var/www 目录,首页指向 index.html index.htm


server {        listen       8080;        server_name  localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / { root html; index index.html index.htm; }
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
}
复制代码


此种方式可以配置前后端分离的前端静态页面,root 指向将 vue 打包好的静态文件即可。

代理服务

server {        listen       80;        server_name  admin.binlive.cn;        location /{            proxy_pass http://127.0.0.1:8080;            proxy_set_header  Host              $http_host;               proxy_set_header  X-Real-IP         $remote_addr; # pass on real client's IP            proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;            proxy_set_header  X-Forwarded-Proto $scheme;            proxy_read_timeout                  900;        }            } 
复制代码

负载均衡

访问域名 www.domain.com 反向代理到 myproject,upstream 指定了负载均衡的机器,weight 指定权重


http {  upstream myproject {  server 127.0.0.1:8000 weight=3;  server 127.0.0.1:8001;  server 127.0.0.1:8002;  server 127.0.0.1:8003;  }
server { listen 80; server_name www.domain.com; location / { proxy_pass http://myproject; } }}
复制代码


nginx -t 检测配置文件是否正确


nginx -s reload 重新加载配置文件

用户头像

Rubble

关注

还未添加个人签名 2021.06.01 加入

还未添加个人简介

评论

发布
暂无评论
Nginx-基本概念和使用