運維二 LNMP環境 動靜網站 地址重寫
運維二 nginx
網站的動靜分離
環境
-
需要部署環境
- LNMP環境 L : linux N : nginx M : mariadb mysql P : php網站開發語言
-
安裝包
yum -y install mariadb mariadb-server mariadb-devel yum -y install php php-fpm php-mysql #php #php-fpm安裝可以讓nginx具有動態解析能力 #php-mysql連線mysql資料庫的庫 netstat -ntulp | grep 9000 #php-fpm netstat -ntulp | grep 3306 #mysql
開啟php動態解析
vim /usr/local/nginx/conf/nginx.conf
#========================================
events {
#......
}
http {
#......
server {
listen 80;
server_name localhost; #域名服務
location / {
root html; #網頁存放
index index.html index.htm; #預設網頁順序 不輸入具體檔案就會順序找顯示找到為止
}
error_page 500 502 503 504 /50x.html #定義狀態頁面
location = /50x.html {
root html;
}
location ~ \.php$ { #~ 啟用正則 .php$ 對應.php結尾的檔案
root html;
fastcgi_pass 127.0.0.1:9000; #指定監聽的地址和埠號
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf; #包含FastCGI其他相關配置 1個FastCGI大概消耗25M記憶體
}
}
}
#========================================
執行流程分析
- 客戶端傳送請求到伺服器80埠 伺服器80埠服務為Nginx
- nginx收到請求對請求分析,如果是靜態頁面,則返回相應的靜態頁面資料
- 如果是動態頁面如php頁面,就會將請求轉交給php-fpm服務(9000),php-fpm管理FastCGI對php頁面進行動態解析,返回解析後的結果給nginx服務
- 最後nginx將網頁資料發回給客戶端
FastCGI
什麼是FastCGI
- FastCGI是一個可伸縮地,高速地在HTTP伺服器和動態指令碼語言間通訊的介面(FastCGI在Linux下是socket(可以是檔案socket,也可以是ip socket)),主要優點是把動態語言的和HTTP伺服器分離開來。多數流行的HTTP伺服器都支援FastCGI,包括Apache、Nginx和lightpd
- FastCGI被許多指令碼語言支援,比較流行的指令碼語言之一為PHP。
- FastCGI介面方式採用C/S架構,可以將HTTP伺服器和指令碼解析伺服器分開,同時指令碼解析伺服器上啟動一個或多個指令碼解析守護程式,當HTTP伺服器每次遇到動態程式時,可以將其直接交付給FastCGI程式執行。
- 直白將,HTTP服務和指令碼語言解析分開,提高系統效能
FastCGI的重要特點
- FastCGI是HTTP伺服器和動態指令碼語言間通訊的介面或者工具
- 優點是把動態語言解析和HTTP伺服器分離開來
- Nginx、Apache、Lighttpd以及多數動態語言都支援FastCGI
- FastCGI介面方式採用C/S架構,分為客戶端(HTTP伺服器)和服務端(動態語言解析伺服器)
- PHP動態語言服務端可以啟動多個FastCGI的守護程式
- HTTP伺服器通過FastCGI客戶端和動態語言FastCGI服務端通訊
php-fpm配置檔案
vim /etc/php-fpm.d/www.conf
#====================================
pm.start_servers = 5 #75行左右註釋符是; 代表開啟時初始FastCGI個數為5
#一般一個FastCGI消耗25M記憶體
#====================================
地址重寫
重要配置引數
- rewrite regex replacement flag
- rewrite 舊地址 新地址 [選項]
頁面重定向例項
vim /usr/local/nginx/conf/nginx.conf
#=========================================
server{
rewrite /a.html /b.html; #在server全域性塊中重寫路徑
#支援正則 所以/a.html是模糊匹配 輸入192.168.4.2/haha/a.html也會到/b.html
rewrite ^/a.html$ /b.html; #正則確定是/a.html才會跳轉
#保證只有/a.html才會跳轉 不然/sds/a.html 或者/a.htmlsakdjaksjd都會跳轉
rewrite ^/a.html$ /b.html redirect; #新增redirect之後會改變位址列 重定向
#當有多條rewrite 並且符合多條時,匹配即停止
rewrite / https://www.baidu.com; #匹配所有 轉到百度 全替換 所以位址列會變
#http 或者 https必須加
rewrite ^/(.*)$ https://www.baidu.com/$1; #$1類似sed保留空間
#本質是讓使用者在被重定向之後能夠訪問到之前具體的網頁
}
#==========================================
根據瀏覽器重定向例項
vim /usr/local/nginx/conf/nginx.conf
#====================================== server全域性塊中
server{
if ($http_user_agent ~* firefox){ #針對firefox瀏覽器重定向到專屬頁面
rewrite ^/(.*)$ /firefox/$1;
}
}
#======================================# ngx_http_core_module提供變數定義
#http://nginx.org/en/docs/http/ngx_http_core_module.html 官方文件地址
相關文章
- 【Linux運維】LNMP環境配置Linux運維LNMP
- LNMP環境搭建(二):NginxLNMPNginx
- LNMP環境VPS搭建織夢DEDECMS網站教程LNMP網站
- LNMP動態網站環境部署 + 初始化php-fpm + Nginx Location網頁LNMP網站PHPNginx網頁
- Linux下-LNMP環境搭建部落格網站(全過程)LinuxLNMP網站
- php網站首頁動態地址修改,如何將PHP網站首頁的動態地址改為靜態地址PHP網站
- 搭建lnmp環境LNMP
- LNMP 環境搭建LNMP
- docker 學習筆記之實戰 lnmp 環境搭建系列 (2) ------ 手動搭建 lnmp 環境Docker筆記LNMP
- docker 搭建 lnmp 環境DockerLNMP
- LNMP 環境安裝LNMP
- docker搭建lnmp環境DockerLNMP
- 北京智和信通一站式運維方案,助力雙網隔離環境實現安全運維運維
- Windows 下搭建 lnmp 環境WindowsLNMP
- LNMP環境一鍵部署LNMP
- docker下LNMP環境搭建DockerLNMP
- macOS 安裝 LNMP 環境MacLNMP
- PHP-lnmp 環境搭建PHPLNMP
- Docker LNMP Redis 環境搭建DockerLNMPRedis
- brew lnmp 環境安裝LNMP
- Linux運維第二課—-Linux發展史、環境準備Linux運維
- Linux應該這麼學第20章使用 LNMP 架構部署動態網站環境(centos7.4)LinuxLNMP架構網站CentOS
- 使用 jquery.qrcode.js 生成網站地址url二維碼圖片jQueryJS網站
- PHP 一鍵 Docker LNMP 環境PHPDockerLNMP
- Dockerfile 方式定製 lnmp 環境DockerLNMP
- 搭建 lnmp 環境之 nginx 篇LNMPNginx
- Deepin 15 搭建 LNMP 環境 + swooleLNMP
- ubuntu 16.04安裝LNMP環境UbuntuLNMP
- Dockfile搭建極簡LNMP環境LNMP
- 利用 Docker 一鍵搭建 LNMP 環境DockerLNMP
- Ubuntu 16 下部署 Laravel LNMP 環境UbuntuLaravelLNMP
- Magento2 LNMP 環境安裝LNMP
- docker搭建laravel開發環境lnmpDockerLaravel開發環境LNMP
- Docker 下安裝配置 lnmp 環境DockerLNMP
- Ubuntu20 LNMP 環境安裝UbuntuLNMP
- ansible-playbook 批量部署lnmp環境LNMP
- 阿里雲下利用寶塔運維配置Django執行環境(多站點)阿里運維Django
- 自動化運維工具之Puppet master/agent模型、站點清單和puppet多環境設定運維AST模型