一、linux介紹:
Linux操作系統(tǒng)是基于UNIX操作系統(tǒng)發(fā)展而來的一種克隆系統(tǒng),它誕生于1991 年的 [Linux桌面] 10 月5 日(這是第一次正式向外公布的時(shí)間)。以后借助于Internet網(wǎng)絡(luò),并通過全世界各地計(jì)算機(jī)愛好者的共同努力,已成為今天世界上使用最多的一種UNIX 類操作系統(tǒng),并且使用人數(shù)還在迅猛增長(zhǎng)。
二、動(dòng)靜分離概述
1.Nginx的靜態(tài)處理能力比較強(qiáng),但是動(dòng)態(tài)處理能力不足,因此在企業(yè)中常采用動(dòng)靜分離技術(shù)
2.在LNMP架構(gòu)中,靜態(tài)頁(yè)面交給Nginx處理,動(dòng)態(tài)頁(yè)面交給php-FPM模塊處理。在動(dòng)靜分離技術(shù)中動(dòng)態(tài)頁(yè)面交給Apache處理
3.Nginx不僅能作為web服務(wù)器,還具有方向代理、負(fù)載均衡和緩存的功能
4.Nginx通過proxy模塊實(shí)現(xiàn)將客戶端的請(qǐng)求代理至上游服務(wù)器,此時(shí)nginx與上游服務(wù)器的連接是通過http協(xié)議進(jìn)行的
5.Nginx在實(shí)現(xiàn)反向代理功能時(shí)的最重要指令為proxy_pass,它能夠根據(jù)URL、客戶參數(shù)或者其他的處理邏輯將用戶請(qǐng)求調(diào)度至上游服務(wù)器
6.動(dòng)靜分離技術(shù)我們需要做一臺(tái)LAMP平臺(tái)服務(wù)器處理動(dòng)態(tài)請(qǐng)求和一臺(tái)Nginx處理靜態(tài)請(qǐng)求,將對(duì)php頁(yè)面的請(qǐng)求轉(zhuǎn)發(fā)給LAMP處理,將靜態(tài)頁(yè)面的請(qǐng)求交給Nginx處理
三、Server1安裝LAMP
安裝apache服務(wù)
tar xf apr-1.6.2.tar.gz -C /opt
tar xf apr-util-1.6.0.tar.gz -C /opt
tar xf httpd-2.4.29.tar.gz -C /opt
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
yum -y install
gcc
gcc-c++
make
pcre-devel
expat-devel
perl
//expat-devel支持xml的組件
cd /opt/httpd-2.4.29
./configure
--prefix=/usr/local/httpd
--enable-deflate
--enable-so
--enable-rewrite
--enable-charset-lite
--enable-cgi
//prefix安裝路徑
//enable-so啟用核心模塊
//rewrite重寫功能
//charset-lite字符集
//cgi通用網(wǎng)關(guān)接口
make && make install
//apache服務(wù)的主配置文件httpd.conf和啟動(dòng)腳本apachectl
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
# chkconfig: 35 85 21 //35級(jí)別自動(dòng)運(yùn)行 第85個(gè)啟動(dòng) 第21個(gè)關(guān)閉
# description: Apache is a World Wide Web server
chkconfig --add httpd //將httpd加入到SERVICE管理器
//編輯主配置文件
vim /usr/local/httpd/conf/httpd.conf
ServerName www.kgc.com:80
Listen 192.168.43.221:80
#Listen 80
//優(yōu)化主配置文件和啟動(dòng)腳本,便于系統(tǒng)識(shí)別
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
#關(guān)閉防火墻,開啟服務(wù)
systemctl stop firewalld.service
setenforce 0
service httpd start
netstat -anpt | grep 80
安裝MySQL服務(wù)
//解壓
tar xzvf mysql-5.6.26.tar.gz -C /opt
//安裝必要環(huán)境包
//cmake安裝mysql
yum install -y ncurses-devel autoconf cmake
cd /opt/mysql-5.6.26
//DCMAKE_INSTALL_PREFIX指定路徑
//DDEFAULT_CHARSET字符集
//DDEFAULT_COLLATION通用字符集
//DEXTRA_CHARSETS擴(kuò)展字符集
//DSYSCONFIDIR配置文件的目錄
//DMYSQL_DATADIR數(shù)據(jù)文件目錄
//DMYSQL_UNIX_ADDR通信文件,定義連接數(shù)據(jù)庫(kù)的文件,服務(wù)啟動(dòng)之后才會(huì)生成文件
cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DSYSCONFIDIR=/etc
-DMYSQL_DATADIR=/home/mysql/
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
make && make install
// 覆蓋本機(jī)的數(shù)據(jù)庫(kù),和前面的配置文件的目錄一致
cp support-files/my-default.cnf /etc/my.cnf
//啟動(dòng)腳本
cp support-files/mysql.server /etc/init.d/mysqld
//給予權(quán)限
chmod 755 /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld --level 35 on
//設(shè)置環(huán)境變量,將啟動(dòng)腳本放到系統(tǒng)中
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
echo $PATH
//添加用戶
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
//初始化數(shù)據(jù)庫(kù),之前必須創(chuàng)建用戶
/usr/local/mysql/scripts/mysql_install_db
--user=mysql
--ldata=/var/lib/mysql
--basedir=/usr/local/mysql
--datadir=/home/mysql
ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock
//修改啟動(dòng)腳本
vim /etc/init.d/mysqld
//指明工作路徑
basedir=/usr/local/mysql
//數(shù)據(jù)存放位置
datadir=/home/mysql
service mysqld start
//mysql服務(wù)3306端口
netstat -anpt | grep 3306
//mysql用戶創(chuàng)建密碼
mysqladmin -u root -p password "abc123" //給mysql賬號(hào)設(shè)置密碼
安裝php編輯語(yǔ)言
tar xjvf php-5.6.11.tar.bz2 -C /opt
//gd庫(kù)php處理圖片的擴(kuò)展庫(kù),提供api接口
//libpng圖片,libxml文件格式
yum -y install
gd
libpng
libpng-devel
pcre
pcre-devel
libxml2-devel
libjpeg-devel
cd /opt/php-5.6.11
//gd圖片庫(kù)
//zlib支持壓縮
//mbstring支持字符串
// /usr/local/mysql php的配置文件
//--with-apxs2,設(shè)置
./configure
--prefix=/usr/local/php5
--with-gd
--with-zlib
--with-apxs2=/usr/local/httpd/bin/apxs
--with-mysql=/usr/local/mysql
--with-config-file-path=/usr/local/php5
--enable-mbstring
make && make install
//生成主配置文件php.ini
cp php.ini-development /usr/local/php5/php.ini
ln -s /usr/local/php5/bin/* /usr/local/bin/
ln -s /usr/local/php5/sbin/* /usr/local/sbin/
vim /etc/httpd.conf //在合適位置新增,使apache支持php
//支持php和php源碼文件
AddType Application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html
//必須在apache中有php5的模塊
cd /usr/local/httpd/htdocs
mv index.html index.php
vim /usr/local/httpd/htdocs/index.php
<?php
apache php!;
?>
#重啟apache服務(wù)
service httpd stop
service httpd start
驗(yàn)證LAMP平臺(tái)服務(wù)
四、Server2安裝Nginx
安裝nginx
yum install vsftpd -y //安裝ftp服務(wù)
systemctl start vsftpd //開啟ftp服務(wù)
#使用wget工具從官網(wǎng)上下載nginx壓縮包
wget http://nginx.org/download/nginx-1.12.6.tar.gz
#解壓
tar zxvf nginx-1.12.2.tar.gz -C /opt
#安裝環(huán)境包
yum install gcc gcc-c++ pcre* zlib-devel make -y
#創(chuàng)建用戶,不建立宿主文件,且不能再shell上登錄
useradd -M -s /sbin/nologin nginx
#配置,安裝且編譯
cd /opt/nginx-1.12.2/
./configure
--prefix=/usr/local/nginx
--user=nginx
--group=nginx
--with-http_stub_status_module
#nigix運(yùn)行的用戶和組都為nginx
#啟用http_stub_status_module模塊以支持狀態(tài)統(tǒng)計(jì),便于查看服務(wù)器的連接信息
make && make install
#在Nginx服務(wù)器(192.168.43.211)上創(chuàng)建一個(gè)test.html文件,作為靜態(tài)頁(yè)面
echo "<h1>nginx html</h1>" > /usr/local/nginx/html/test.html
#為主程序nginx創(chuàng)建軟鏈接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
nginx -t //檢查
nginx //啟動(dòng)
killall -1 nginx //重啟
killall -3 nginx //停止
#關(guān)閉防火墻,開啟服務(wù)
nginx
systemctl stop firewalld
setenforce 0
驗(yàn)證nginx服務(wù)
五、動(dòng)靜分離
- 修改Nginx服務(wù)器(192.168.43.211)上的配置文件,將訪問PHP文件的請(qǐng)求(192.168.43.211/index.php)轉(zhuǎn)發(fā)到LAMP服務(wù)器上(192.168.43.221)
vim /usr/local/nginx/conf/nginx.conf
location ~ .php$ {
proxy_pass http://192.168.43.221;
}
驗(yàn)證動(dòng)靜分離