一、简介
见https:///Kevin–Wu/text-backup的同名md文件
二、简单使用笔记
安装
在Ubuntu系统上可以直接通过apt-get install nginx
命令来安装nginx。安装完成后可以在浏览器输入Ubuntu系统的IP地址,如果弹出Nginx的欢迎页面,则表示安装成功。
这里准备使用三台虚拟机,其中一台负责转发,另外两台虚拟机作为真正的服务器。理论上只有转发的服务器需要nginx,其他两台只要保证对应IP和端口能提供内容即可,但这里方便起见,统一安装好nginx。
配置
通过修改nginx的配置文件,可以指定服务器具体的转发规则。需要注意的是,本人用的Ubuntu16.04默认配置文件位于/etc/nginx/sites-available/default
,但网上很多教程说用/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default
,前者修改配置后无法生效,后者更是不存在,过时教程害死人…
为方便起见,转发的服务器称为proxy,提供内容的两台服务器称为server1,server2。这里主要是修改proxy的配置文件,修改内容如下
upstream test {
server 192.168.80.131 weight=1;
server 192.168.80.133 weight=2;
} # 新增内容
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
proxy_pass http://test; # 新增内容
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
......
}
- 创建了一个名为”test“的upstream,里面内容就是server1和server2的ip地址,以及转发时的权重。
- 在下方的location位置指定了使用test的转发规则
此时如果在本机浏览器输入proxy的ip地址,显示的内容分别是server1和server2的nginx默认页面。每次刷新页面后,将会根据转发规则展现不同server的页面。
修改页面
server1和2的nginx规则同样是在/etc/nginx/sites-available/default
中修改,默认代码和上面proxy的一样。上述默认规则中,通过
root /var/www/html;
指定了nginx的默认页面位于/var/www/html
目录下,该目录下初始只有一个index.nginx-debian.html
文件,就是我们能看到的nginx欢迎页面。上述配置文件的代码同样指定了要使用目录下的哪个文件:
index index.html index.htm index.nginx-debian.html;
这里的意思就是,逐个查找index.html、index.htm、index.nginx-debian.html。如果我们添加了一个index.html,则转发到该server后显示的就不再是nginx欢迎页面,而是我们这个页面了,因为index.html的顺序更靠前。而如果我们把欢迎页面也删掉,那么该目录下没有符合要求的文件,此时如果转发到这个server,则会报403 Forbidden的错误。
负载均衡
在proxy的upstream test
定义中,我们看到有一个weight
的参数,这个参数主要功能是指定不同server的负载,例如上述的server的weight
值分别为1和2,那么当我们输入proxy的IP时,请求会按照1:2的比例转发到两个server上,表现出来的形式就是,首先展现1次server1的页面,后续两次刷新页面展示的是server2,再刷新一次又是server1,以此循环。