综合架构网站服务概念原理/部署安装(三)

网站服务防盗链优化设置

什么是盗链概念:盗取链接 == 消耗网站流量资源

在这里插入图片描述

1.用户访问 B 盗链网站(图片A) 消耗图片资源 A网站流量

​ 占用A网站带宽

云主机:网络通讯计费模式

​ 固定带宽计费模式:

​ 按流量进行计费:

如何防盗链过程:

在这里插入图片描述

1.referer防盗链

    location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)${
        valid_referers none blocked *.etiantian.org etiantian.org;
        if($invalid_referer) {
                return 301 http://www.nana.com;
}
}

网站服务区域匹配配置信息

​ —location

作用说明:可以根据不同uri信息做匹配,匹配信息可以有不同处理方式

配置方法:location [ = | ~ | ~* | ^~ ] uri{操作指令信息}

举例说明:
在这里插入图片描述

=		精确匹配
^~		优先匹配
~		区分大小写进行匹配
~*		不区分对象写进行匹配

作用说明:

1.可以简化前端开发工作难度

server {
    listen       80;
    server_name  www.nana.com;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /html/www;
        index  index.html index.htm;
    }
    location ~* \.jpg$ {
		root /html/www/images;
	}
}

2.可以临时调整网站页面信息

 location ~* \.jpg$ {
		root /html/www/images;		---正常加载图片资源目录信息
	}
	
 location ~* \.jpg$ {
		root /html/www/活动;			---加载节假日活动页面信息
	}

补充: root vs alias 指定资源路径信息

root:
location /oldboy/ {
    root   /html/www;
    }
访问过程:www.oldboy.com/oldboy/oldboy.jpg ==> /html/www/oldboy/oldboy.jpg

alias:
location /oldboy/ {
    alias   /html/www;
    }
访问过程:www.oldboy.com/oldboy/oldboy.jpg ==> /html/www/oldboy.jpg

总结:

  • root 用户访问uri信息 必须和root指定目录信息结合 才能找到资源信息

​ 举例:用户uri=/oldboy/oldboy.jpg root /html/www

​ 实际访问:/html/www/oldboy/oldboy.jpg 寻找资源

  • alias 用户访问uri信息 直接访问alias指定目录资源信息即可

​ 举例:用户uri=/oldboy/oldboy.jpg alias /html/www

​ 实际访问:/html/www/oldboy.jpg 寻找资源

网站服务架构组成原理过程

作用说明:在需要处理动态请求时,需要部署网站架构

前端知识:

html:页面静态资源代码 浏览器

css:可以设计网站样式 可以定义页面显示效果

js:可以实现特殊功能

架构组成:LNMP(php) LAMP LNMT LNMP(python)

1)前端代理或web服务 接受用户访问请求 nginx/apache

2)前端动态服务程序 处理动态请求信息 php/tomcat/uwsgi

3)后端数据存储服务 保存用户数据信息 mysql/mariadb

Ps:宝塔 直接部署环境

网站服务架构工作原理过程

情况一:

用户访问资源(静态资源) —> Nginx – php – mysql

​ Ps:静态资源到达Nginx服务后会直接处理相应

情况二:

用户访问资源(动态资源) —> Nginx – php – mysql

​ 识别资源信息是动态资源:将动态资源向后发送(需要让nginx和后端服务进行对接)

​ nginx -fastcgi- php

​ nginx -proxypass- tomcat

​ nginx -uwsgi- uwsgi

情况三:

用户访问资源(动态资源)—> Nginx --> php --> mysql

读取或写入数据(调用数据库)

​ 开发人员编写代码,进行调取数据或写入数据库信息

​ 数据库服务会做处理,将处理后结果响应给php

网站服务架构安装部署过程

Nginx服务部署

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YCY2hGUG-1650331287050)(E:\Typora软件\linux运维笔记\运维笔记图片库\063 LNMP架构部署(Linux+Nginx+MySQL+PHP)2.PNG)]

PHP服务部署
第一步 使用扩展源来安装
#解决yum安装软件冲突问题
[root@web01 ~]# yum remove php-mysql php php-fpm php-common    
#准备yum安装软件扩展源信息
[root@web01 ~]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
获取https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
警告:/var/tmp/rpm-tmp.6C4n1F: 头V4 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:epel-release-7-14                警告:/etc/yum.repos.d/epel.repo 已建立为 /etc/yum.repos.d/epel.repo.rpmnew 
################################# [100%]

[root@web01 ~]# rpm -qa|grep epel-release   ---查看是否安装
epel-release-7-14.noarch

[root@web01 ~]# rpm -ql epel-release-7-14.noarch  ---查看生成文件信息
/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/epel.repo
/usr/lib/systemd/system-preset/90-epel.preset
/usr/share/doc/epel-release-7
/usr/share/doc/epel-release-7/GPL

[root@web01 ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm  
获取https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
警告:/var/tmp/rpm-tmp.5FwDjK: 头V4 RSA/SHA1 Signature, 密钥 ID 62e74ca5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:webtatic-release-7-3             ################################# [100%]

#利用yum安装PHP相关软件信息
[root@web01 ~]# yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb php71w-fpm

#启动服务程序
systemctl start php-fpm
数据库服务(mariadb)
第一个历程:安装数据服务程序
yum install mariadb-server mariadb -y
第二个历程:启动服务程序
systemctl start mariadb.service
systemctl enable mariadb.service

网站架构配置过程

nginx服务配置:

目的:静态资源访问自己处理/动态资源访问交给php服务处理

    location ~ \.php$ {
        fastcgi_index index.php;			---php服务默认处理动态资源
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass 127.0.0.1:9000;		---调取fastcgi隧道 将nginx收到动态请求
        include fastcgi_params;				---加载识别fastcgi配置相关的变量文件
}

解释说明:

  • SCRUPT_FILENAME= d o c u m e n t r o o t document_root documentrootfastcgi_script_name
  • document_root=====>路径
  • fastcgi_script_name=====>文件名

php访问配置文件

[root@web01 bbs]# cat /html/bbs/php_test.php 
<?php
 phpinfo();
?>
php服务配置:

目的:实现数据存储过程/实现存储大文件数据

/etc/php-fpm.d/www.conf
行号
8 		user = apache			---调整为和nginx服务worker进程用户相同/和后端存储服务器目录属主信息相同
10		group = apache			---调整为和nginx服务worker进程用户相同/和后端存储服务器目录属主信息相同
22		listen = 127.0.0.1:9000  ---可以实现php服务和nginx服务分离

/etc/php.ini
post_max_size = 200M
upload_max_filesize = 200M
mysql服务配置:

数据库组成部分: 服务程序-- 库信息 — 表信息 — 数据字段信息

目的: 为了实现php服务连接访问,以及数据正常存储与读取

[root@web01 conf.d]# mysqladmin -uroot password "zaizai"    ---设置密码

[root@web01 conf.d]# mysql -uroot -pzaizai				--利用指定密码连接数据库
Welcome to the MariaDB monitor.  

mysql关闭DNS反解析

[root@web01 conf.d]# vim /etc/my.cnf

[mysqld]
skip-name-resolve  			----加上这行信息

检查:进入数据库输入
MariaDB [(none)]> show variables like "%skip%";
+----------------------------------+-----------+
| Variable_name                    | Value     |
+----------------------------------+-----------+
| replicate_events_marked_for_skip | replicate |
| skip_external_locking            | ON        |
| skip_name_resolve                | ON        |    ---on 打开
| skip_networking                  | OFF       |
| skip_replication                 | OFF       |
| skip_show_database               | OFF       |
| slave_skip_errors                | OFF       |
| sql_slave_skip_counter           | 0         |
+----------------------------------+-----------+
8 rows in set (0.00 sec)

测试是否可以连接访问数据库:

[root@web01 bbs]# vim mysql_test.php

<?php
 $servername = "localhost";
 $username = "root";
 $password = "zaizai";
 $conn = mysqli_connect($servername, $username, $password);
 if ($conn) {
 	echo "mysql successful by root !\n";
 }else{
 	die("Connection failed:" . mysqli_connect_error());
 }
 
?>

网站架构代码上线(手动上线)

bbs代码上线过程:

第一个历程:上传代码信息/解压代码信息

cd /html/bbs
unzip xxx.zip
mv xxx/* ./

第二个历程:需要创建网站数据库/操作数据库用户

[root@web01 bbs]# mysql -uroot -pzaizai			---登录数据库


MariaDB [(none)]> create database bbs;			---创建网站数据库
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> show databases;				---查看
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)
MariaDB [(none)]> grant all on bbs.*to  'bbs'@'localhost' identified by 'zaizai';																		---创建操作数据库用户bbs 给其所有权限 密码设定为zaizai
Query OK, 0 rows affected (0.00 sec)

第三个历程:网站页面初始化过程(开源代码) == 指定连接数据库

开源代码文件(地址 密码没有) — 数据库服务

网站数据库服务分离

目的:可以实现web集群数据统一存储

第一个历程:将数据库信息进行备份
[root@web01 backup]# mysqldump -uroot -pzaizai -A>/backup/web01.sql
第二个历程:将数据迁移到独立数据库服务器上(进行恢复)
迁移到数据库服务器上
[root@web01 backup]# scp -rp /backup/web01.sql 192.168.200.51:/tmp
数据库服务器
下载安装数据库
[root@db01 ~]# yum install -y mariadb-server mariadb
root@db01 ~]# mysql -uroot -pzaizai</tmp/web01.sql

MariaDB [(none)]> show databases;		---检查
+--------------------+
| Database           |
+--------------------+
| information_schema |
| bbs                |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

第三个历程:和新的数据服务建立连接

web服务配置:指定新的数据库信息

[root@web01 bbs]# grep -r zaizai ./*
./config/config_global.php:$_config['db']['1']['dbpw'] = 'zaizai';
	$_config['db']['1']['dbhost'] = '192.168.200.51';
	$_config['db']['1']['dbuser'] = 'bbs';
	$_config['db']['1']['dbpw'] = 'zaizai';

./config/config_ucenter.php:define('UC_DBPW', 'zaizai');
	define('UC_DBHOST', '192.168.200.51');
	define('UC_DBUSER', 'bbs');
	define('UC_DBPW', 'zaizai');

./uc_server/data/config.inc.php:define('UC_DBPW', 'zaizai');
	define('UC_DBHOST', '192.168.200.51');
	define('UC_DBUSER', 'bbs');
	define('UC_DBPW', 'zaizai');

db数据库服务进行配置(允许web服务器进行连接)
MariaDB [(none)]> grant all on bbs.* to 'bbs'@'192.168.200.%' identified by 'zaizai'
    -> ;
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> select user,host from mysql.user;     ---检查
+------+---------------+
| user | host          |
+------+---------------+
| root | 127.0.0.1     |
| bbs  | 192.168.200.% |
| root | ::1           |
|      | localhost     |
| bbs  | localhost     |
| root | localhost     |
|      | web01         |
| root | web01         |
+------+---------------+
8 rows in set (0.00 sec)

网站调整数据存储过程

第一个历程:将原有数据保存备份

[root@web01 forum]# mkdir /backup/nfs_bak
[root@web01 forum]# mv ./* /backup/nfs_bak/

第二个历程:进行存储服务挂载操作

[root@web01 forum]# mount -t nfs 192.168.200.31:/data/bbs /html/bbs/data/attachment/forum/

第三个历程:

[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# mkdir /data/bbs -p
[root@nfs01 ~]# chown -R nfsnobody. /data
[root@nfs01 ~]# ll /data/bbs/ -d
drwxr-xr-x 2 nfsnobody nfsnobody 6 4月  11 19:21 /data/bbs/

网站构架搭建问题答疑

问题一:网站无法部署成功

解决思路

1)确认LNMP架构部署完毕/启动成功

Nginx启动不成功:	nginx -t 	
				查看服务是否已经启动过了   ps -ef|grep nginx
php启动不成功:	php配置文件有错误
mariadb启动不成功:数据库服务器出现异常中断  rm -rf /var/lib/mysql/*	再重新启动
				 /etc/my.cnf配置文件问题
				 cp /usr/sharw/mysql/my-small.cnf /etc/my.cof

问题二:网站初始化时无法连接数据库

解决思路:

1) 连接数据库客户端配置是否正确:
2) 连接数据库服务端配置是否正确:
	a:数据库中是否有创建相应网站数据库	bbs					 create
	b:数据库中是否授权用户管理制定数据库	bbs用户管理	bbs数据库	grant
客户端测试: mysql -h 192.168.200.51 -ubbs -pzaizai

问题三:无法上传数据信息

解决思路

1)确认nginx 服务是否有上传数据限制
2)确认php	  服务是否有上传数据限制
3)确认后端存储是否有限制
4)确认网页代码是否有限制
	bbs代码上传限制调整方法(百度)

WordPress:

登入后台:http://blog.nana.com/wp-login.php

dedecms:

初始化:http://www.nana.com/install/index.php

登入后台:http://www.nana.com/dede/login.php

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值