部署LNMP
LNMP 主流的企业网站平台之一
-L :Linux操作系统
-N :Nginx网站服务软件
-M :MySQL,MariaDB数据库
-P :网站开发语言(PHP,Perl,python)
一、软件的安装
安装Nginx,MariaDB,PHP
mariadb(数据库客户端软件)、mariadb-server(数据库服务器软件)、mariadb-devel(其他客户端软件的依赖包)、php(解释器)、php-fpm(进程管理器服务)、php-mysql(PHP的数据库扩展包)
1 Nginx安装
Nginx简介
-是俄罗斯人编写的十分轻量级的HTTP服务器
-是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器
Nginx配置文件及目录
-/usr/local/nginx/ 安装目录
-conf/nginx.conf 主配置文件
-html 网页目录
-logs 日志文件
-sbin/nginx 启动脚本
-V:查看编译参数
-c:指定配置文件,启动服务
[root@svr7 nginx]# sbin/nginx -V //查看编译参数
[root@svr7 nginx]# sbin/nginx //开启服务
[root@svr7 nginx]# sbin/nginx -s stop //关闭服务
[root@svr7 nginx]# sbin/nginx -s reload //重置配置文件(刷新)
[root@proxy nginx]# ls logs //日志文件
access.log error.log nginx.pid(进程文件)
[root@svr7 ~]# tar -xf lnmp_soft.tar.gz
[root@svr7 ~]# ls lnmp_soft
[root@svr7 ~]# cp lnmp_soft/nginx-1.17.6.tar.gz /opt/
[root@svr7 ~]# ls /opt/
[root@svr7 ~]# cd /opt/
[root@svr7 ~]#tar -xf nginx-1.17.6.tar.gz
[root@svr7 ~]# cd nginx-1.17.6/
[root@svr7 ~]# yum -y install gcc //编译
[root@svr7 ~]# yum -y install pcer-devel //支持正则
[root@svr7 ~]# yum -y install openssl-devel //网站加密
[root@svr7 ~]# ./configure
–prefix=/usr/local/nginx \ 指定安装目录
–user=nginx \ 指定账户名称
–group=nginx \ 指定组名称
–with-http_ssl_module \ 支持网站加密
–with-http_stub_status \ //开启status状态页面
–with-stream //开启4层反向代理功能,开启TCP/UDP代理模块
[root@svr7 ~]# make && make install 编译安装
[root@svr7 ~]# /usr/local/nginx/sbin/nginx
[root@svr7 ~]# netstat -ntualp | grep :80
netstat命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)
2 安装MariaDB
[root@svr7 ~]# yum -y install mariadb-server
[root@svr7 ~]# yum -y install mariadb
[root@svr7 ~]# yum -y install mariadb-devel
[root@svr7 ~]# systemctl restart mariadb
[root@svr7 ~]# systemctl status mariadb
[root@svr7 ~]# netstat -ntualp | grep :3306
3 安装PHP
[root@svr7 ~]# yum -y install php
[root@svr7 ~]# yum -y install php-fpm //进程管理器
[root@svr7 ~]# yum -y install php-mysql//PHP扩展库文件,可以使PHP连接mariadb数据库
[root@svr7 ~]# systemctl restart php-fpm
[root@svr7 ~]# netstat -ntulap |grep :9000
静态网站 访问环境发生变化时,网站内容不会发生变化
动态网站 访问环境发生变化时,网站的内容可能会发生变化
二、fastCGI工作原理
-
工作流程
.web server启动时载入fastCGI进程管理解释器
.fastCGI 进程管理初始化,启动多个解释器进程
.当客户机请求达到web server时,fastCGI进程管理器选择并连接到一个解释器
.fastCGI子进程完成处理后返回结果,将标准输出和错误信息从同一连接返回web server -
fastCGI简介
fastCGI技术目前支持语言:
PHP C/C++ Java Prel Python Ruby等
fastCGI缺点
内存消耗大
-因为是多进程,所以进程消耗更的服务器内存,PHP-CGI解释器每个进程消耗7-25M内存。
3.压力测试工具
ab
-ab -c 并发数 -n 总请求数 URL
URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
about:cache(缓存)
三、Session与Cookie
session 存储在服务端,保存用户名,登录状态等信息
cookies 有服务器下发给客户端,保存在客户端的一个文件里。保存的内容包括sessionID
ss命令可以查看系统中启动的端口信息,该命令常用选项如下:
-a显示所有端口的信息
-n以数字格式显示端口号
-t显示TCP连接的端口
-u显示UDP连接的端口
-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口
-p显示监听端口的服务名称是什么(也就是程序名称)
注意:在RHEL7系统中可以使用ss命令替代netstat命令,功能一样,选项一样。
[root@proxy ~]# ls /var/lib/php/session/ 服务端session存放的位置
实践操作
一、Nginx基于域名的虚拟主机及用户认证
前面已将平台搭建OK
proxy主机
1.检查所有服务是否都已开启及安装httpd-tools
[root@proxy ~]# yum -y install httpd-tools
使用htpasswd命令创建账户文件,需要安装httpd-tools
2.配置
3.[root@proxy ~]# htpasswd -c /usr/local/nginx/pass zhangsan //创建密码文件
[root@proxy ~]# htpasswd /usr/local/nginx/pass lisi
再次创建则不需要-c选项
[root@proxy ~]# cat /usr/local/nginx/pass
查看pass文件
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
用firefox访问ip,则显示此页面看到需输入用户及密码
4.[root@proxy ~]# vim /usr/local/nginx/conf/nginx.con修改Nginx服务配置,添加虚拟主机配置
5.创建目录及存放网页文件
[root@proxy ~]# mkdir /usr/local/nginx/html_aaa
[root@proxy ~]# echo this is test web > /usr/local/nginx/html_aaa/index.html
firefox访问 http://www.aaa.com