综合架构网站架构(LNMP)
综合架构网站架构(LNMP) 00. 说明 1 LNMP架构的组成 1 2 3 4 5 6 7 8 9 L: linux系统 selinux 必须关闭 防火墙关闭 mysql服务无法启动 nginx服务部署:作用 处理用户静态请求 html jpg php服务部署: --- 处理动态的页面请求 和数据库建立关系 mysql服务部署 --- yum安装很慢 编译安装也很慢 mariadb 服务部署: 存储用户的字符串信息
2 LNMP架构的部署 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 nginx服务 ---ansible一键化部署 修改yum源 mysql服务部署: 1、安装数据库软件 yum install mariadb-server mariadb 2、数据库初始化过程 mysql_install_db --basedir=path The path to the MariaDB installation directory. --datadir=path The path to the MariaDB data directory. --user=user_name 初始化信息输出内容: 创建数据库密码信息: PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands: /application/mysql/bin/mysqladmin -u root password 'new-password' --- 给本地数据库设置密码 /application/mysql/bin/mysqladmin -u root -h web01 password 'new-password' --- 给远程数据库设置密码 3、启动数据库服务 systemctl start mariadb.service systemctl enable mariadb.service 4、给mysql数据库服务设置密码 mysqladmin -u root password '1' ---设置密码 mysql -u root -p1 PHP服务部署: 1、更新yum源/卸载系统自带的PHP软件 yum remove php-fpm php php-common php-mysql rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm 2、安装php软件 yum install -y php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb 3、编写配置文件 vim /etc/php-fpm.d/www.conf user = www nginx---www group = www 4、启动php服务 systemctl restart php-fpm.service systemctl enable php-fpm.service
3 LNMP架构通信原理 1 用户访问网站--->nginx(调用fastcgi_pass接口)--FastCGI-->(php-fpm -- wrapper) php (php解析器)---> mysql(读取或写入)
4 LNMP服务之间如何建立管理 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 nginx + php 运维负责 php + mysql 开发负责 1、实现nginx和php建立关系 a、编写nginx配置文件 location ~ \.php$ { root /usr/share/nginx/bbb; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name ; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; } b、重启nginx服务 systemctl restart nginx c、编写php测试文件 [root@web01 bbb] <?php phpinfo(); ?> d、 实现php + mysql 建立关系 编写php代码文件 [root@web01 blog] <?php $servername = "localhost" ; $username = "root" ; $password = "oldboy123" ; //$link_id =mysql_connect('主机名' ,'用户' ,'密码' ); //mysql -u用户 -p密码 -h 主机 $conn = mysqli_connect($servername , $username , $password ); if ($conn ) { echo "mysql successful by root !\n" ; }else { die("Connection failed: " . mysqli_connect_error()); } ?>
5 运维人员代码上线 1 2 3 4 5 1、获取代码信息(git)---使用开源的网站代码 www网站页面: http://www.dedecms.com/ bbs网站页面: http://www.discuz.net/forum.php blog网站页面: https://cn.wordpress.org/ wecenter网站页面: http://www.wecenter.com/?copyright
6 NFS和WEB服务 1 mysql服务和web服务 (企业案例:数据库迁移方法)
01.课程回顾 1) nginx服务的企业应用(nginx模块) 1 实现网站页面目录索引功能 (yum仓库搭建) 2 实现网站访问别名功能 server_name 3 实现网站页面用户访问监控 keepalived_timeout 1 2 3 HTTP请求报文: 请求头---connection: keepalived.../closed 短连接 HTTP响应报文: 响应头---connection: closed 短连接 VPN---无法访问外网/xshell无法远程连接
4 实现网站服务日志功能配置 1 2 错误日志: 错误日志级别 访问日志: 日志的格式信息 自动化分析日志(ELK 三个软件)
5 根据用户访问的url进行匹配 1 2 3 4 5 6 7 8 9 10 11 12 13 location = xxx 精确匹配 优先级01 location ^~ xxx 优先匹配 优先级02 location ~ 区分大小写匹配 优先级03 location ~* 不区分大小写 优先级03 location uri 根据uri进行匹配 优先级03 location / 默认匹配 优先级最低 企业应用: 京东网站location应用 --- 11.11 12.12 6.18 --- 页面信息和平常不一样 有两个站点目录: 平常网站的站点目录 /html/jd-normal 节日网站的站点目录 /html/jd-teshu location / { root /html/jd-normal } location /特殊 { root /html/jd-teshu }
6 网站页面跳转功能 1 2 rewrite 匹配地址(url uri) 跳转成什么地址(url uri) return 301 http: