文章目录
Nginx跳转功能及HTTPS
一、数据库独立服务器安装
1.作用
- 保证多台web服务器请求到的数据是一样的
- 数据库独立支持数据安全配置
2.实现站库分离
#克隆虚拟机
#安装mariadb
yum install mariadb-server -y
#启动
systemctl start mariadb
#数据库默认不允许远程登录的
mysqladmin password 123
mysql -uroot -p123
grant all on *.* to root@'%' identified by '123';
#搭建可道云
3.已存在的项目做数据库分离
1.数据迁移
#旧库导出数据
mysqldump -uroot -p123 -A >full.sql
#将full.sql传输到数据库所在服务器
scp full.sql 10.0.0.51:/root/
#数据库服务器导入数据
mysql -uroot -p123 <full.sql
##数据库授权远程访问
grant all on *.* to root@'%' identified by '123';
2.修改项目链接的数据库配置信息
vim /html/wordpress/wp-config.php
define('DB_HOST', '10.0.0.51');
二、php存储session的命令
1.phpmyadmin项目
是一个数据库的连接器,必须能够保持页面登录状态
2.服务端php实现储存session
方式一:通过文件实现储存session
/var/opt/remi/php72/lib/php/session
chown -R nginx.nginx /var/opt/remi/php72/lib/php/session
方式二:通过redis存储session
1.db主机安装redis
yum install redis -y
2.配置redis
vim /etc/redis.conf
61 bind 127.0.0.1 10.0.0.51
3.启动redis
systemctl start redis
4.测试登录redis
redis-cli -h 10.0.0.51
5.web服务端配置php通过redis储存session
前提:php必须安装连接redis插件
php72-php-pecl-redis.x86_64
vim /etc/opt/remi/php72/php-fpm.d/www.conf
php_value[session.save_handler] = redis #存储session的方式
php_value[session.save_path] = "tcp://10.0.0.51:6379" #
6.重启
systemctl restart php72-php-fpm.service
7.redis查看session
redis-cli -h 10.0.0.51
keys *
三、页面跳转
1.return
2.rewrite跳转
rewrite 用户访问的uri路径 跳转的新路径 跳转策略
#跳转策略
last #每次跳转重新发起请求
break #每次跳转先检查目录结构,如果有直接发起请求
permanent #永久重定向 301
redirect #临时重定向 302
#实验
location.dms.com/michael break location.dms.com/status
location.dms.com/qiangge last location.dms.com/status
#nginx配置跳转
location /michael {
rewrite /michael /status break;
}
location /qiangge {
rewrite /qiangge /status last;
}
案例2:实现return页面跳转功能
location.dms.com/admin --> location.dms.com
location /admin {
rewrite /admin http://location.dms.com break;
}
3.rewrite实现伪静态应用
1.什么是伪静态
让一个动态的url伪装成静态的url,通过静态的url实际上访问到动态的资源
2.作用
1.网络运营/网络推广
百度竞价:购买了关键字,将关键字绑定到url中。要求URL不能总是发生变化,尽量是静态的URL
2.通过伪静态技术一定程度的屏蔽一些渗透工具的扫描
3.伪静态的实现思路
http://wordpress.dms.com/?p=1
1.设计请求的静态URL
http://wordpress.dms.com/p/1.html
2.通过rewrite实现静态URL跳转到真实的动态URL上
location ^~ /p {
rewrite /p/1.html http://wordpress.dms.com/?p=1 redirect;
rewrite /p/1.html /?p=1 break;
}
#支持正则表达式
rewrite /p/(.*).html /?p=$1 break;
四、https协议
1.介绍
HTTPS 安全的超文本传输协议
2.http存在的问题
- 明文传输
解决:数据加密。hash算法加密 - 无法确认数据包完整性
解决:通过md5校验解决 - 无法确认身份的
解决:ssh密钥对
3.md5加密与解密
md5sum 2.txt >check #输出校验码
md5sum -c <check #检查校验码
4.HTTPS的证书
证书:由国际组织 Certum、Sectigo、DigiCert、Globalsign、GeoTrust
需要绑定相应域名的
证书的构成
- 根证书(CA证书):签发机构的信息,域名信息,有效期,授权机构的信息,随机码
- 私钥
- 公钥
5.HTTPS原理
6.自己签发证书
# 自签发证书
# 安装自签发证书工具
yum install openssl -y
# 生成私钥
##创建证书目录
mkdir /usr/local/nginx/conf/ssl -p
(umask 077;openssl genrsa -out /usr/local/nginx/conf/ssl/private.pem 4096)
# 根据私钥生成公钥
openssl rsa -in /usr/local/nginx/conf/ssl/private.pem -pubout -out /usr/local/nginx/conf/ssl/key.pem
# 根据私钥生成ca证书
openssl req -new -x509 -key /usr/local/nginx/conf/ssl/private.pem -out /usr/local/nginx/conf/ssl/ca.crt -days 36500
#查看证书内容及有效期
openssl x509 -in /usr/local/nginx/conf/ssl/ca.crt -noout -text # 证书内容
openssl x509 -in /usr/local/nginx/conf/ssl/ca.crt -noout -dates # 有效期
7.nginx部署证书
server {
listen 443 ssl;
server_name phpmyadmin.dms.com;
root /html/phpmyadmin;
index index.html index.php;
ssl_certificate ./ssl/ca.crt;
ssl_certificate_key ./ssl/private.pem;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name phpmyadmin.dms.com;
location / {
return https://phpmyadmin.dms.com$uri;
}
}