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)配置动态服务器

[root@ken 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)数据库配置文件:

[root@kenhtml]#cp wp-config-sample.php wp-config.php

[root@kenhtml]#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 ken@’localhost’ identified by ‘123’;
原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/11141802.html