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 实现反向代理配置负载均衡