Nginx 搭建网站

283 阅读2分钟

nginx 是近几年比较火的高性能Web服务器和反向代理服务器,下面是对nginx 的简单使用。

下载 Nginx

brew install nginx	

Nginx 命令

brew services start nginx //启动
nginx -s reload //重新加载
nginx -s reopen //重启
nginx -s stop //快速停止

Nginx 配置

添加新配配置

  1. 在默认配置中的http 下面新增一行代码
include conf/*.conf
  1. 在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/请求都代理到服务器上了。

注意

  1. 在nginx 中添加配置时,每一行配置都以分号结尾,否则会报错。
  2. 建议新建自己的配置,不要在默认配置和初始配置中修改配置信息;新建方法在上面有提到。
  3. location 可以正则匹配

负载均衡配置 upstream

Nginx 的负载均衡功能是非常实用的。要实现负载均衡只需要在配置中配置upstream即可。或者你也可以将proxy_pass的值换成upstream配置。

  1. 默认轮询方式
http {
  ...
  upstream yourServerName {
    server 106.14.13.148;
    server 106.14.13.147;
    ...
  }
  
  server {
    ...
    location /api/ {
      proxy_pass http://yourServerName
    }
  }
}
  1. 权重方式 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 还提供了哈希分配方式。

  1. 哈希分配 ip_hash

哈希分配可以通过哈希算法自动定位到用户已经访问过得服务器,从而解决上面的问题。

http {
  ...
  upstream yourServerName {
    ip_hash;
    server 106.14.13.148;
    server 106.14.13.147;
    ...
  }
  
  server {
    ...
    location /api/ {
      proxy_pass http://yourServerName
    }
  }
}