web服務介紹(三)

狀態碼分類:
1xx:100-101  額外信息提示
2xx:200-206  表示成功類響應
3xx:300-305  重定向
4xx:400-415  錯誤類響應碼,由于客戶端發送錯誤,如客戶端請求一個根本不存在的資源
5xx:500-505  錯誤類信息,服務器端錯誤,服務器本身一些問題導致請求無法成功

常用狀態碼:200
            301,302
            304:請求資源未發生改變
            401:輸入賬號和密碼認證后才能訪問資源
            403:Forbidden
            404: 服務器無法找到客戶端請求的資源  Not Found
            500: 服務器內部錯誤
            502:代理服務器從后端服務器收到一條偽響應

504:
    client ——> httpd –(tomcat |  PHP )
499 :
    nginx(web) 自定義的狀態碼             #499是nginx專用的狀態碼
    client——-> nginx 
    響應還沒完成,客戶端主動斷開連接  499

通用首部:既可以用在請求報文中又可以用在響應報文中
       Date:報文的創建時間
       Connection:連接方式,如keep-alive,Close
       Via:顯示報文經過的中間節點
       Cache-Control:控制緩存的生效機制
       Pragma:兼容Http 1.0,緩存相關

請求首部
     Accept:通知服務器自己可以接受的媒體類型
     Accept-Charset:可以接受的字符集
     Accept-Encoding:通知服務器自己接受的編碼格式,如gzip
     Accept-Language:接受的語言
     Client-IP:客戶端IP
     Host:請求的服務器名稱和端口號
     Referer:包含當前正在請求資源的上一級資源
     User-Agent:客戶端代理

《高性能web服務器/站點》 騰訊郭欣
HSTS協議  307跳轉 Internal Redirect
Tengine  http://tengine.taobao.org/

LAMP:
   linux,apache,mariadb,php(拍黃片)的集合搭配:M表示數據庫,p表示語言
   MongoDB :副本集
   PHP  :比較容易上手 比較流行
   JAVA :
        SOA 服務化: 
              服務自我治理
              路由最佳選擇
              自動降級
              自動熔斷
              fabric 

LAMMP:
      Linux apache mysql memcache(緩存服務器) php
LNMP : 
      Linux nginx mysql php
WAMP :                     #http://www.wampserver.com/
      windows 上使用的LAMP

CGI : Common Gateway Interface 通用網關接口
    實現客戶端從網頁瀏覽器向執行在網絡服務器上的程序傳輸數據的功能
        描述了服務器和請求處理程序之間傳輸數據的一種標準
    像是一座橋,把網頁和WEB服務器中的執行程序連接起來,把HTML接收的指令
        傳遞給服務器的執行程序,再把服務器執行程序的結果返還給HTML頁

數據模型:層次模型,網狀模型,關系模型:表(行+列)
常見的關系模型:
      IngreSQL, 
      Oracle, OCP
      SQL Server,         #windows上的數據庫
      MySQL, 
      PostgreSQL 
      MariaDB

php中有以下數據庫:
    mysql
    mysqli
    mysqlnd
javad的tomcat服務一般會有jdbc(也叫驅動)來啟動服務 

Client-(Http協議)-Httpd-(CGI)-Application Server(Program File)-(MySQL)-MySQL
         Httpd接受用戶web請求,靜態資源直接響應,動態資源為PHP腳本,
              對此類資源的請求交由PHP來運行
         PHP  運行PHP進程
         MariaDB:數據管理系統

常見的HTTPD與PHP結合的方式
CGI模式
        HTTPD需要自己創建CGI子進程,創建銷毀子進程開銷比較大
FastCGI模式
Modules模式
       PHP編譯成為Httpd的模塊
       prefork模型,使用libphp5.so
       worker/event模型,使用的libphp5-zts.so庫

CentOS 6:Httpd,PHP,mysql-server,php-mysql

CentOS 7:Httpd,php,php-mysql mariadb-server

示例 CentOS 7下構建LAMP環境
[root@centos7 ~]# yum install httpd
[root l @centos7 ~]# yum install php
[root@centos7 html]# yum install php-mysql
[root@centos7 ~]# rpm -ql php
/etc/httpd/conf.d/php.conf
/etc/httpd/conf.modules.d/10-php.conf
/usr/lib64/httpd/modules/libphp5.so
/usr/share/httpd/icons/php.gif
/var/lib/php/session

新建phpinfo頁面

[root@centos7 html]# cat test.php 
<?php
phpinfo();
?>

重啟httpd服務

以上完成后,然后構建mariadb數據庫:
grant all privileges on . to walker@’%’ identified by “walker”;
     新建walker的用戶 然后直接將所有的庫的權限授權給walker 密碼是walker
flush privileges;
     刷新授權表
select user,password,host from mysql.user;
     查詢系統上所有的用戶
避免登錄時候名稱被反解,修改/etc/my.cnf添加以下配置
     Skip_name_resolve = ON                    

添加MySQL的測試訪問頁面

<?php

phpinfo();

 $conn = mysql_connect(‘192.168.118.132′,’walker’,’walker’);
 if ($conn)
        echo “OK”;
 else
     echo “Failure”;
?>

然后就可以愉快的安裝各種應用:
            wordpress 開源的博客系統
            discuz 開源的論壇系統  戴志康開發的,現在被騰訊收購
            phpwind 阿里收購

     create database wpdb;       #在mysql里面創建數據庫名稱  
     show databases;             #查看數據庫
 grant all privileges on . to wpuser@’%’ identified by “walker”;
                         she.*     #用戶對此數據庫有所有權限,都是表示所有庫
                         wpuser@’%’    #該用戶擁有所有數據庫的操作權限
 vps服務器:
       搬瓦工
       …
       買個vps,再買個域名就可以搭建了

Sendfile機制:         #2.4以上默認開啟的,2.2的需要手動開啟
          減少內核態切換和用戶數據的開銷
          加快靜態文件的請求速度
          減少CPU和內存開銷
          適用于大量的小文件
常見阻塞模型:
      同步阻塞I/O
      同步非阻塞I/O      #不需要等待,每隔一段時間詢問
      I/O多路復用        #事件模型,開辟區域記錄IO狀態
             Select,poll                         #apache使用select
      信號驅動I/O(sigio)    #開辟區域只記錄已經完成的磁盤IO
             /dev/poll,/dev/epoll,epoll,kqueue    #nginx 使用epoll
      異步I/O                 #最難實現,效率最高

I/O 磁盤I/O  網絡I/O  內存I/O      #內存I/O很快,基本可以忽略
   <構建高性能web站點> 郭欣

fastcgi   :進程管理器 用來管理常駐內存的一些動態解釋腳本
spwan-cgi :跑著跑著崩潰了,需要結合crontab
lighttpd  :也是一種進程管理器
php-fpm 進程管理器 
          :5.3.3之前 如果想使用php-fpm 需要php打補丁,使用patch 
php-fpm 工作方式:  跟apache的worker模式類似

php-fpm配置文件名目錄:
/etc/php.ini
/etc/php.d/
.ini
          PHP本身的配置文件
 
/etc/php-fpm.con
/etc/php-fpm.d/.conf
          PHP-FPM進程管理器的配置文件

 DirectoryIndex index.php
  <VirtualHost *:80>
            ServerName 172.18.100.63
          DocumentRoot /data/www/
          ProxyRequests off
          ProxyPassMatch ^/(.
.php)$  fcgi://127.0.0.1:9000/data/www/$1 
           <Directory “/data/www/”>
                   Options None
                  AllowOverride None
                 Require all granted
         </Directory>
  </VirtualHost>

 ./scripts/mysql_install_db –user=mysql –datadir=/data/mysql/
數據初始化
在centos7.3上編譯安裝php5.4.40,相關操作在pdf上

原創文章,作者:shewei,如若轉載,請注明出處:http://www.www58058.com/73887

(0)
sheweishewei
上一篇 2017-04-22
下一篇 2017-04-22

相關推薦

  • shell 腳本之數組 和 yum 【下】

    shell 腳本之數組 和 yum 【下】 數組 ?  變量:存儲單個元素的內存空間 ?  數組:存儲多個元素的連續的內存空間,相當于多個變量的 集合。 ?  數組名和索引        索引:編號從0開始,屬于數值索引        注意:索引可支…

    Linux干貨 2016-08-24
  • 淺談正則表達式

    1.       什么是正則表達式 基本說來,正則表達式是一種用來描述一定數量文本的模式。Regex代表Regular Express。本文將用<<regex>>來表示一段具體的正則表達式。 一段文本就是最基本的模式,簡單的匹配相同的文本。   2. &n…

    Linux干貨 2016-08-12
  • N25-第6周博客作業

    N25-第6周博客作業 vim:     模式化的編輯器         基本模式:             編輯模式,…

    Linux干貨 2017-01-09
  • 關于高級文件管理系統的幾個實驗

    實驗1:用軟件模擬生成RAID (1)選擇磁盤或者創建新的分區lsblk 選擇bcde四塊磁盤 創建新的分區 每個為5Gfdisk(gdisk) /dev/sdb 交互式方式創建 選擇分區ID為raid 6.7編號不一樣?。。?>可能需要同步內核中的磁盤分區表 centos6中用partx -a centos7中用 partprobe命令 (2)創建R…

    2017-08-12
  • corosync+pacemaker+drbd+mysql配置安裝詳解

    一,  基本環境介紹及基本環境配置 節點1: node1.hulala.com      192.168.1.35     centos6.5_64    添加8G新硬盤 節點2: node1.hulala.com      192.168.1.36…

    Linux干貨 2016-05-08
  • MariaDB之MHA配置

    工作拓撲 一、MHA簡明:     MHA(Master HA)是一款開源的MySQL的高可用程序,它為MySQL主從復制架構提供了    automating master failover 功能。MHA在監控到master節點故障時,會提升其中    擁有最新數據的…

    2017-01-01
欧美性久久久久