nginx反向代理与负载均衡

Posted agnostida-trilobita

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx反向代理与负载均衡相关的知识,希望对你有一定的参考价值。

1.nginx和apache的对比

nginx是轻量级服务器,apache是重量级服务器

nginx适合处理静态页面,apache比较适合动态页面

nginx抗并发能力比较好

apache稳定性比较好

 

2.nginx下载

添加epel网络源

[local]

name=local

enabled=1

gpgcheck=0

baseurl=file:///mnt

[epel]

name=epel

enabled=1

gpgcheck=0

baseurl=https://mirrors.aliyun.com/epel/7Server/x86_64/

 

yum install nginx -y

启动nginx,需要关闭占用80端口的程序

 

3.nginx配置文件

vim /etc/nginx/nginx.conf

192.168.64.4

location/admin

 

192.168.64.4/admin

 

4.匹配规则

=

^~#一般匹配一个目录

~#区分大小写

~*#不区分大小写

/admin

 

5.反向代理(动静分离)

192.168.64.4主服务器

192.168.64.5静态节点

192.168.64.7动态节点

 

root   /var/www/html;(网站根目录)

index   index.html;(默认首页文件)

1)在主服务器上部署nginx并设置动静分离规则

location ~html$

proxy_pass  http://192.168.64.5;   (静态节点)

location ~php$

proxy_pass  http://192.168.64.7;   (动态节点)

 

2)检查语法重启Nginx

nginx -t

systemctl restart nginx

 

3)配置静态服务器

 

4)配置动态服务器

[[email protected] html]# yum install php httpd -y

vim /var/www/html/index.php

 <?php

phpinfo();

?>

 

5)主服务器设置

location  /admin

proxy_pass http://192.168.64.4;

不完全代理:

如果不加斜线上面location表示的含义是请求http://192.168.64.4/admin,这样的话在客户端admin文件或者目录必须存在!

 

完全代理:

如果加斜杆上面location表示的含义是请求http://192.168.64.4/admin,但是在客户端admin文件或者目录不需要存在!

 

6.负载均衡

主要参数:

weight:服务器权重

max_fails:设置连续几次转发失败就认为该节点出现故障,就不再向该节点发送用户请求

fail_timeout:设置等待上游服务器响应超时时间(默认单位为秒)

upstream ken

server 192.168.64.4 weight=5 max_fails=2 fail_timeout=3;

server 192.168.64.5 weight=5 max_fails=2 fail_timeout=3;

        

配置文件中修改:

location  /

proxy_passhttp://ken;

server

root   /var/www/html;

index  index.html;

 

7.LNMP架构上线网站

1)下载所需安装包

yum  install  php php-mysql nginx mariadb-server php-fpm   -y

2)修改配置文件

server

listen 80 default_server;

listen [::]:80 default_server;

server_name _;

root /var/www/html;

index index.php index.html;

 

# Load configuration files for the default server block.

include /etc/nginx/default.d/*.conf;

location /

location ~ php$

fastcgi_pass 127.0.0.1:9000;

include fastcgi.conf;

 

3)数据库配置文件:

[[email protected]]#cp wp-config-sample.php wp-config.php

[[email protected]]#vim wp-config.php

/**WordPress数据库的名称*/

define(‘DB_NAME’,‘litong’);

/**MySQL数据库用户名*/

define(‘DB_USER’,‘litong’);

/**MySQL数据库密码*/

define(‘DB_PASSWORD’,‘123’);

4)配置数据库

create database ken;

grant all on*.*to [email protected]’localhost’ identified by ‘123’;

 

以上是关于nginx反向代理与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

Nginx认识与基本使用 Nginx 实现反向代理配置负载均衡

nginx学习之反向代理负载均衡

Nginx 反向代理与负载均衡详解

Nginx的反向代理与负载均衡