Linux基本服務Nginx——day05——Session叢集配置
session---cookie 網站搭建
很多登陸資訊的網站,在登陸一次後,不管怎麼重新整理,也許處理的web伺服器變了,但是登陸資訊一直在,不需要我們再次輸入,這就用到session-cookie的技術,其原理就是,服務端用session記錄使用者登陸的資訊,然後生成一個sid,然後把sid放到cookie裡,再把cookie發給客戶端,這樣客戶端重新整理或者短時間後再開啟,就會把cookie發給服務端,服務端根據其kid就可以掉出儲存的session檔案裡的資訊,這樣就不需要客戶端再次輸入
模擬完成這個web伺服器,需要搭建叢集,一個nginx的web排程伺服器,多個web伺服器
其中 nginx排程伺服器搭建方法可以檢視nginx總結;
然後 搭建兩個web伺服器,可以用Apache,也可以用nginx,
如果用Apache,只需要修改配置檔案中的DirectoryIndex,使其預設訪問index.php即可
而如果用nginx,需要修改/下的index,還要作動靜分離才可以 然後在PHP檔案中寫上session的呼叫語句
<?php session_start(); # Starting Session $username=$_POST['username']; $password=$_POST['password']; # Assume user authenticated successfully. Store session variables $_SESSION['login_user']= $username; $_SESSION['logged_in'] = "true"; $_SESSION['id'] = session_id(); header("Location: home.php"); ?>
這樣就可以實現單臺伺服器可以和客戶端session會話連線,不過預設session把資訊資料儲存在本地伺服器,
也就是說,訪問排程伺服器,排程伺服器把資料轉發給一個web伺服器,這個web伺服器生成session資訊,傳送cookie給客戶端,但這時候,如果客戶端重新整理,排程器把資料轉發給其他web伺服器,這些伺服器裡面沒有相應的session檔案,導致又要輸入,這時候,我們就要把session資訊互通,具體方法就是,在排程器中建立一個memcache資料庫,然後所有的web伺服器session資訊都存入資料庫
PHP---memcache
php連線資料庫需要相應的包 yum install -y php-pecl-memcache
裝包後,就可以測試連線了,用下面的php檔案測試一下
<?php
$memcache=new Memcache; //建立memcache物件
$memcache->connect('IP',11211) or die ('could not connect!!');
$memcache->set('key','test'); //定義變數
$get_values=$memcache->get('key'); //獲取變數值
echo $get_values;
?>
然後就是配置php的session配置,其配置檔案: /etc/php-fpm.d/www.conf,修改最後兩行
php_value[session.save_handler] = memcache
php_value[session.save_path] = "tcp://排程器IP:11211"
這樣就實現了全部的web叢集的任務