第十七周--作业

1、nginx负载均衡中常见的算法及原理有哪些?

rr轮询
rr轮询算法为nginx默认调度算法,按客户端请求顺序把客户端的请求逐一分配到不同的后端节点服务器,这相当于LVS中的rr轮询算法。如果后端节点服务器宕机,宕机的服务器会被自动从节点服务器池中剔除,以使客户端的用户访问不受影响。新的请求会分配给正常的服务器。

wrr加权轮询
在rr轮询算法的基础上加上权重,即为权重轮询算法。权重越高,在被访问的概率越大。可以根据服务器的配置和性能指定权重值大小,达到合理有效的地利用主机资源。

ip_hash源地址hash
源地址hash调度算法,基于的客户端的remote_addr(源地址IPv4的前24位或整个IPv6地址)做hash计算,以实现会话保持。该方法确保来自同一客户端的请求将始终传递到同一服务器,除非该服务器不可用。在该服务器不可用的情况下,客户端请求将被传递到另一台服务器。很可能,它也将始终是同一台服务器。

least_conn最少连接
最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器,相当于LVS中的WLC加权最少连接算法。同时考虑服务器的权重,如果后端服务器的连接数都相同时,则使用WRR加权轮询调度算法。

hash KEY [consistent] 一致性hash算法
基于指定请求报文中首部字段或者URI等key做hash计算。可以包含文本、key变量及其组合。
如果consistent指定了参数,将使用ketama一致性hash算法。该方法确保在将服务器添加到组或从组中删除时,只有少数密钥将重新映射到不同的服务器。这有助于为缓存服务器实现更高的缓存命中率。
一致性hash算法适用于后端是Cache服务器(如varnish)时使用,consistent定义使用一致性hash运算,一致性hash基于取模运算
注意:从组中添加或删除服务器可能会导致将大部分密钥重新映射到不同的服务器。

  

2、使用rewrite规则实现将所有到a域名的访问rewrite到b域名

  

修改Nginx服务器配置文件
vim /apps/nginx/conf.d/pc.conf
server {
        listen 80;
        server_name www.magedu.org;
        root /data/nginx/html/pc/;
        location / {
                root /data/nginx/html/pc/;
                rewrite / http://www.jf.com permanent;
        }
}

server {
        listen 80;
        server_name www.jf.com;
        root /data/nginx/html/jf/;
}

创建缺少的文件
mkdir /data/nginx/html/{pc,jf}/ -p
echo 'pc website' > /data/nginx/html/pc/index.html
echo 'this is the new website page' > /data/nginx/html/jf/index.html

绑定ip地址
vim /etc/hosts
10.0.0.7    www.magedu.org  www.jf.com

重读配置文件
nginx -t
nginx -s reload

测试
curl www.magedu.org -L

  

3、实现反向代理客户端IP透传

修改Nginx服务器配置文件
server {
        listen 80;
        proxy_set_header X-Real-IP $remote_addr;
        server_name www.magedu.org;
        root /data/nginx/html/pc/;
        location / {
                root /data/nginx/html/pc;
                proxy_pass http://10.0.0.8;
        }
}


修改http服务首页为hello word
修改http服务配置文件
vim vim /etc/httpd/conf/httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\ \" combined
此行修改为
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\ "%{X-Real-IP}i\" \" combined
重启服务

客服端测试访问
curl www.magedu.org

  

4、利用LNMP实现wordpress站点搭建

  安装数据库服务

yum -y install mariadb-server

修改配置文件,添加server-id和开启二进制日志
server-id=17
log-bin

systemctl enable mariadb-server
systemctl start mariadb-server

创建用户账号并授权
登陆mariadb
mysql

创建账号
create databases wordpress
create user 'wordpress@10.0.0.%' identified by '123456';
grant all on wordpress.* to 'wordpress@10.0.0.%';

  部署php

安装依赖包
yum install gcc openssl-devel libxml2-devel bzip2-devel sqlite-devel libmcrypt-devel oniguruma-devel

下载并解压php源码包
https://www.php.net/releases/​​
tar xvf php-7.4.11.tar.gz -C /usr/local/

运行configure脚本
./configure --prefix=/apps/php74 --enable-mysqld --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-openssl --with-zlib --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-mbstring --enable-xml --enable-sockets --enable-fpm --enable-maintainer-zts --disable-fileinfo

编译安装并安装
make -j 2 && make install

准备PHP配置文件
cp php.ini-production /etc/php.ini
cp php-fpm.conf.default php-fpm.conf
cp www.conf.default www.conf
vim /apps/php74/etc/php-fpm.d/www.conf
修改一下项:

[root@centos7 php-fpm.d]#grep '^[^;]' www.conf
[www]
user = www
group = www
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
access.log = log/$pool.access.log
slowlog = log/$pool.log.slow

创建系统用户与日志文件
useradd -r -s /sbin/nologin www
mkdir /apps/php74/log

准备启动文件
cp /usr/local/php-7.4.11/sapi/fpm/php-fpm.service /usr/lib/systemd/system
systemctl daemon-reload
systemctl enable --now php-fpm.service

查看9000端口是否打开
ss -ntl

  部署nginx服务

下载依赖包
yum -y install gcc pcre-devel openssl-devel zlib-devel

解压源码包
tar xvf nginx-1.18.0.tar.gz -C /usr/local/

执行configure脚本
./configure --prefix=/apps/nginx --user=www --group=www --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module

编译并安装
make -j 2 && make install

准备启动脚本
mkdir /apps/nginx/run
vim /apps/nginx/conf/nginx.conf
#添加pid         run/nginx.pid;

vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/apps/nginx/run/nginx.pid
ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable --now nginx

创建软连接
ln -s /apps/nginx/sbin/nginx /usr/sbin/
检查配置文件语法
nginx -t

配置nginx支持fastcgi
vim /apps/nginx/conf/nginx.conf
server {
        listen       80;
        server_name  www.dnhc.com;
        location / {
            root   /data/nginx/wordpress;
            index  index.php index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            root           /data/nginx/wordpress;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
	location ~ ^/(ping|pm_status)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

nginx -t
重读配置文件
nginx -s reload

准备php测试页面
mkdir -p /data/nginx/wordpress
vim /data/nginx/wordpress/test.php
<?php
phpinfo ();
?>
绑定域名
vim /etc/hosts

  部署wordpress

下载地址:
https://cn.wordpress.org/download/​​

解压源码包
tar xvf wordpress-6.0.1-zh_CN.tar.gz -C /usr/local/


移动wordpress文件
cp -r /usr/local/wordpress/* /data/nginx/wordpress/


修改文件权限
chown -R www.www /data/nginx/wordpress/

  注意:初始化web页面登陆时会包403错误

在nginx配置文件里添加默认访问页面index.php即可

posted @ 2022-08-10 22:36  এ蓝桉、  阅读(22)  评论(0)    收藏  举报