linux系統session與cookie


1.使用phpmyadmin實現cookie和session
2.使用自己理解的方式,解釋一下cookie和session
3.使用代碼的方式也可以(VScode 有興趣的同學)

cookie和session個人理解:

首先他倆不一樣的地方就是cookie是存儲在瀏覽器,session存儲在服務器

然后當一個用戶第一次請求服務器的時候,服務器會返回瀏覽器一個session_id,然后瀏覽器把這個session_id存儲在瀏覽器,就是cookie里面,然后當這個用戶下次再請求服務器的時候,瀏覽器就會帶着cookie里面的存儲session_id,然后當服務器拿到這個session_id的時候就會知道是哪個用戶發送過來的請求,這個用戶在服務器里面都存儲了什么東西,每個用戶session_id都不一樣,這也就相當於用戶在服務器里面的身份證

使用phpmyadmin實現cookie和session

環境准備

服務器名 外網IP 內網IP 搭建服務 角色
web01 10.0.0.7 172.16.1.7 nginx,php-fpm,phpmyadmin web服務器
web02 10.0.0.8 172.16.1.8 nginx,php-fpm,phpmyadmin web服務器
nfs 10.0.0.31 172.16.1.31 redis redis服務器
lb01 10.0.0.5 172.16.1.5 nginx 負載均衡服務器
db01 10.0.0.51 172.16.1.51 mariadb 數據庫服務器

web01配置

#### 上傳nginx和php-fpm的壓縮包
[root@web01 ~]# rz -E
#### 解壓
[root@web01 ~]# tar xf php_nginx.tgz
#### 進入站點目錄安裝
[root@web01 ~]# cd root/nginx_php/
[root@web01 nginx_php]# rpm -Uvh *
#### 創建用戶組和用戶
[root@web01 nginx_php]# groupadd www -g 666
[root@web01 nginx_php]# useradd www -u 666 -g 666 -s /sbin/nologin -M
#### 修改nginx的主配置文件
[root@web01 ~]# cd /etc/nginx
[root@web01 nginx]# vim nginx.conf
user  www;
worker_processes  1;

#### 修改php-fpm的配置文件
[root@web01 nginx]# vim /etc/php-fpm.d/www.conf 
user = www
; RPM: Keep a group allowed to write in log dir.
group = www
#### 編輯nginx的配置文件
[root@web01 nginx]# vim zh.test.com
[root@web01 nginx]# vim blog.test.com
#### 檢測語法
[root@web01 nginx]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#### 啟動nginx並加入開機自啟
[root@web01 nginx]# systemctl start nginx
[root@web01 nginx]# systemctl enable nginx
#### 啟動php-fpm並加入開機自啟
[root@web01 nginx]# systemctl start php-fpm
[root@web01 nginx]# systemctl enable php-fpm
####  創建站點目錄並進入站點目錄上傳服務的壓縮包
[root@web01 nginx]# mkdir /code/zh -p
[root@web01 nginx]# mkdir /code/wordpress
[root@web01 nginx]# cd /code/zh
[root@web01 zh]# rz

[root@web01 zh]# cd ../wordpress/
[root@web01 wordpress]# rz
#### 解壓並授權
[root@web01 wordpress]# tar xf wordpress-5.0.3-zh_CN.tar.gz 
[root@web01 wordpress]# mv wordpress/* ./
[root@web01 wordpress]# cd ../zh/
[root@web01 zh]# unzip WeCenter_3-2-1.zip 
[root@web01 zh]# mv WeCenter_3-2-1/* ./
#### 授權目錄
[root@web01 ~]# chown www.www /code -R
#### 域名解析
#### 瀏覽器訪問

web02配置

#### 上傳nginx和php-fpm的壓縮包
[root@web02 ~]# rz

[root@web02 ~]# 
#### 解壓
[root@web02 ~]# tar xf php_nginx.tgz
#### 進入站點目錄安裝所有rpm
[root@web02 nginx_php]# rpm -Uvh *rpm

#### 創建用戶和用戶組
[root@web02 nginx_php]# groupadd www -g 666
[root@web02 nginx_php]# useradd www -u 666 -g 666 -s /sbin/nologin -M 
#### 把web01的nginx配置文件傳到web02
[root@web01 ~]# rsync -avz /etc/nginx/conf.d/ 172.16.1.8:/etc/nginx/conf.d/

#### 把web01的/code目錄傳到web02的/目錄下
[root@web01 ~]# rsync -avz /code 172.16.1.8:/
#### 修改用戶
[root@web02 conf.d]# !v
vim /etc/nginx/nginx.conf 


user  www;
worker_processes  1;
[root@web02 conf.d]# vim /etc/php-fpm.d/www.conf 
user = www
; RPM: Keep a group allowed to write in log dir.
group = www

#### 授權目錄
[root@web02 conf.d]# chown -R www.www /code
#### 檢測語法
[root@web02 nginx]# nginx -t
#### 域名解析
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 啟動nginx加入開機自啟
[root@web02 nginx]# systemctl start nginx
[root@web02nginx]# systemctl enable nginx
#### 啟動php-fpm並加入開機自啟
[root@web02 nginx]# systemctl start php-fpm
[root@web02 nginx]# systemctl enable php-fpm

db01配置

#### 下載mariadb-server
[root@db01 ~]# yum install -y mariadb-server
#### 啟動並加入開機自啟
[root@db01 ~]# systemctl start mariadb.service
[root@db01 ~]# systemctl enable mariadb.service
#### 給root用戶添加密碼
[root@db01 ~]# mysqladmin -uroot password '123'
#### 登錄
[root@db01 ~]# mysql -uroot -p123
#### 創建庫
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> create database zh ;
Query OK, 1 row affected (0.00 sec)
#### 創建用戶和密碼
MariaDB [(none)]> grant all on *.* to wzh_user@'%' identified by '111'
    -> ;
Query OK, 0 rows affected (0.00 sec)

nfs配置

####  下載
[root@nfs ~]#  yum install redis -y
#### 配置redis監聽的網段
[root@nfs ~]# sed  -i '/^bind/c bind 127.0.0.1 172.16.1.31' /etc/redis.conf
#### 啟動並添加開機自啟redis
[root@nfs ~]# systemctl start redis
[root@nfs ~]# systemctl enable redis

#### 檢查端口
[root@nfs ~]# netstat -lntup|grep redis
tcp        0      0 172.16.1.31:6379        0.0.0.0:*               LISTEN      7654/redis-server 1 
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      7654/redis-server 1 
#### 修改web服務器的php.ini配置文件
[root@web01 ~]# vim /etc/php.ini
session.save_handler = redis
session.save_path = "tcp://172.16.1.31:6379"
session.auto_start = 1
#### 注釋/etc/php.fpm.d/www.conf配置文件的內容
[root@web01 ~]# vim /etc/php-fpm.d/www.conf
;php_value[session.save_handler] = files
;php_value[session.save_path]    = /var/lib/php/session
;php_value[soap.wsdl_cache_dir]  = /var/lib/php/wsdlcache
#### 重新啟動php-fpm
[root@web01 ~]# systemctl restart php-fpm
#### 將修改之后的文傳送到web02
[root@web01 ~]# scp /etc/php.ini root@172.16.1.8:/etc/php.ini
root@172.16.1.8's password: 
#### 重啟web02的php-fpm
[root@web02 phpmyadmin]# systemctl restart 

web01配置phpmyadmin

#### 編輯nginx配置文件
[root@web01 conf.d]# cat phpmyadmin.com.conf 
server {
        listen 80;
        server_name phpmyadmin.com;
        root /code/phpmyadmin;
        index index.php index.html;

        location ~ \.php$ {
            root /code/phpmyadmin;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include /etc/nginx/fastcgi_params;
    }
}
#### 檢測語法
[root@web01 conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#### 重新加載nginx
[root@web01 conf.d]# systemctl reload nginx
#### 創建站點目錄
[root@web01 conf.d]# mkdir /code/phpmyadmin
#### 上傳安裝包
[root@web01 conf.d]# cd /code/phpmyadmin/
[root@web01 phpmyadmin]# rz

[root@web01 phpmyadmin]# ll
total 10804
-rw-r--r-- 1 root root 11060845 May 26 19:59 phpMyAdmin-4.9.0.1-all-languages_(1).zip
#### 解壓
[root@web01 phpmyadmin]# unzip phpMyAdmin-4.9.0.1-all-languages_\(1\).zip 
#### 將解壓的東西移動到phpmyadmin目錄
[root@web01 phpmyadmin]# mv phpMyAdmin-4.9.0.1-all-languages/* ./
#### 授權
[root@web01 phpmyadmin]# chown -R www.www /code
#### 域名解析
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 配置文件授權
[root@web01 code]# chown www.www -R /var/lib/php/
#### 訪問

#### 

web02配置phpmyadmin**

#### 從web01上面導數據
[root@web01 ~]# scp -r /code/phpmyadmin 172.16.1.8:/code
#### phpmyadmin的配置文件發送到web02
[root@web01 ~]# scp /etc/nginx/conf.d/phpmyadmin.com.conf  172.16.1.8:/etc/nginx/conf.d/
#### 授權
[root@web02 ~]# chown -R www.www /code
#### 修改配置
[root@web02 code]#  cp config.sample.inc.php config.inc.php
[root@web02 phpmyadmin]# vim config.inc.php
/server 找到localhost改成10.0.0.31的ip
#### 域名解析


lb01負載均衡配置

#### 安裝nginx,上傳nginx的壓縮包到服務器
[root@lb01 ~]# rz
#### 解壓
-rw-r--r--  1 root root 20453237 May 22 15:20 php_nginx.tgz
[root@lb01 ~]# tar xf php_nginx.tgz 
#### 安裝nginx
[root@lb01 ~]# cd root/nginx_php/
[root@lb01 nginx_php]# yum localinstall nginx-1.18.0-1.el7.ngx.x86_64.rpm
#### 編輯nginx的proxy的優化文件,以后可以直接調用參數
[root@lb01 nginx]# vim /etc/nginx/proxy_params         
        proxy_set_header HOST $host; 
        proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;    
        proxy_connect_timeout 60s; 
        proxy_read_timeout 60s; 
        proxy_send_timeout 60s;
        proxy_buffering on; 
        proxy_buffers 8 4k;
        proxy_buffer_size 4k;
#### 編輯nginx的代理文件
#### 需要用到 ngx_http_upstream_module模塊
#### 官網寫法
upstream backend {
    server backend1.example.com       weight=5;
    server backend2.example.com:8080;
    server unix:/tmp/backend3;

    server backup1.example.com:8080   backup;
    server backup2.example.com:8080   backup;
}

server {
    location / {
        proxy_pass http://backend;
    }
}
####  實際編輯配置文件寫法
[root@lb01 ~]# vim /etc/nginx/conf.d/blog.wzh.com.conf 
upstream blog {
	server 172.16.1.7;
	server 172.16.1.8;
	server 172.16.1.9;
}
server {
        listen  80;
        server_name blog.test.com
                proxy_pass http://blog;
			   include proxy_params;
        }
}
[root@lb01 ~]# vim /etc/nginx/conf.d/zh.wzh.com.conf 
upstream zh {
	server 172.16.1.7;
	server 172.16.1.8;
	server 172.16.1.9;
}
server {
        listen  80;
        server_name zh.test.com;
        location / {
                proxy_pass http://zh;
                include proxy_params;
        }
}
[root@lb01 conf.d]# cat phpmyadmin.com.conf 
upstream phpmyadmin {
        server 172.16.1.7:80;
        server 172.16.1.8:80;
}

server {
        listen  80;
        server_name phpmyadmin.com;
        location / {
                proxy_pass http://phpmyadmin;
                           include proxy_params;
        }
}

####  檢查語法
[root@lb01 ~]# nginx -t
#### 開啟nginx並加入開機自啟
[root@lb01 ~]# systemctl start nginx 
[root@lb01 ~]# systemctl enable nginx 

#### 根據權重分配請求,默認都是1,根據不同的服務器的核數處理能力分配
#### 編輯配置文件
[root@lb01 ~]# vim /etc/nginx/conf.d/zh.wzh.com.conf 
upstream zh {
	server 172.16.1.7 weight=4;
	server 172.16.1.8 weight=2;
	server 172.16.1.9 weight=3;
}
server {
        listen  80;
        server_name zh.test.com;
        location / {
                proxy_pass http://zh;
                include proxy_params;
        }
}
#### 做域名解析,把域名解析在這台代理的ip
window+r 打開運行框,輸入drivers,然后點開etc目錄用管理員身份打開hosts文件做域名解析
#### 完成后瀏覽器訪問

#### 清空session數據
[root@nfs ~]# redis-cli
127.0.0.1:6379> keys *
 1) "PHPREDIS_SESSION:43f2d9324fda2ecadf50972d66446a37"
 2) "PHPREDIS_SESSION:e374ae84c13c6bef36c98e1e2357a5a7"
 3) "PHPREDIS_SESSION:b61816a8929f3e0fa750d17c2260b844"
 4) "PHPREDIS_SESSION:60d14e7d171cbca65dc3a4c7888ebe8c"
 5) "PHPREDIS_SESSION:97e4df906fe471d672eaa0529df627cc"
 6) "PHPREDIS_SESSION:96140b67cc78661152ea916c826a0b1e"
 7) "PHPREDIS_SESSION:f8276441f31e7570282b83ad79555d58"
 8) "PHPREDIS_SESSION:f827c699cbf62480ed439e7de831e25f"
 9) "PHPREDIS_SESSION:f785b4ba2d385eeb96b31514134a809f"
10) "PHPREDIS_SESSION:ef377e9662c4de189f48291cd8221a48"
127.0.0.1:6379> FLUSHALL
OK
####  再次刷新頁面
![](https://img2020.cnblogs.com/blog/2082997/202007/2082997-20200723161646283-634912637.png)


#### 登錄之后點記住密碼再退出重登錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM