基礎(chǔ)概念
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),凌源企業(yè)網(wǎng)站建設(shè),凌源品牌網(wǎng)站建設(shè),網(wǎng)站定制,凌源網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,凌源網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。LAMP:Linux-Apache-Mysql-Php
穩(wěn)定、同步、客戶體驗度好、資源占用率高——訪問量小
LNMP: Linux-Nginx-Mysql-Php
異步處理、負載均衡、并發(fā)訪問量大、利用率高——訪問量逐步增加加
LNMPA: Linux-Apache-Nginx-Mysql-Php –
前端niginx,后端apache——訪問量大、運行穩(wěn)定
Nginx :輕量的異步Web服務(wù)器/反向服務(wù)器代理及電子郵件(IMCP/POP3)代理服務(wù)器。
Nginx的處理連接方式和apache的模擬類似,nginx通過主進程master產(chǎn)生多個子進程worker,然后每個worker產(chǎn)生很多線程,由線程處理具體的要求,因為異步處理,故速度特別快!
Nginx與apache、lighttp性能綜合對比,如下圖:
系統(tǒng)需求
以unix為內(nèi)核的系統(tǒng)版本:Centos/RHEL/Fedora/Debian/Ubuntu
需要3GB以上的硬盤空間
MySQL 5.6及MaiiaDB 10必須1G以上的內(nèi)存
SElinux必須關(guān)
Linux下嚴格區(qū)分大小寫,輸入命令需注意
需要yum源正常使用
安裝步驟
1、下載并安裝LNMP一鍵安裝包:
#tar -xvf lnmp1.2-full.tar.gz
#cd lnmp1.2-full
#./install.sh lnmp| lamp |lnmpa
安裝失敗想卸載,執(zhí)行./uninstall進行卸載
使用網(wǎng)絡(luò)yum源一鍵安裝LNMP命令
安裝LNMP執(zhí)行:wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz &&tar xvf lnmp1.2-full.tar.gz && cd lnmp1.2-full && ./install.shlnmp
如需要安裝LNMPA或LAMP,將./install.sh 后面的參數(shù)替換為lnmpa或lamp即可。
按上述命令執(zhí)行后,會出現(xiàn)如下提示:
需要設(shè)置MySQL的root密碼(不輸入直接回車將會設(shè)置為root),輸入后回車進入下一步,如下圖所示:
這里需要確認是否啟用MySQL InnoDB,如果不確定是否啟用可以輸入 y ,輸入 y 表示啟用,輸入 n 表示不啟用。默認為y 啟用,輸入后回車進入下一步,選擇MySQL版本:
輸入MySQL或MariaDB版本的序號,回車進入下一步,選擇PHP版本:
輸入PHP版本的序號,回車進入下一步,選擇是否安裝內(nèi)存優(yōu)化:
可以選擇不安裝、Jemalloc或TCmalloc,輸入對應(yīng)序號回車。
提示"Press any keyto install...or Press Ctrl+c to cancel"后,按回車鍵確認開始安裝。
LNMP腳本就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin、ZendOptimizer這幾個軟件。
3、安裝完成
如果顯示Nginx: OK,MySQL: OK,PHP: OK
并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并Install lnmp V1.2 completed!enjoy it.的話,說明已經(jīng)安裝成功。
4、安裝失敗
如果出現(xiàn)類似上圖的提示,則表明安裝失敗,說明沒有安裝成功?。?/p>
相關(guān)軟件安裝目錄
Nginx主目錄 : /usr/local/nginx
Nginx日志目錄:/home/wwwlogs
Mysql :/usr/local/mysql
Mysql數(shù)據(jù)庫 :/usr/local/mysql/var/
PHP :/usr/local/php
PHPMyadmin :/home/wwwroot/default/phpmyadmin
默認網(wǎng)站目錄 :/home/wwwroot/default/
狀態(tài)管理命令
LNMP狀態(tài)管理: lnmp {start|stop|reload|restart|kill|status}
LNMP 各個程序狀態(tài)管理: lnmp{nginx|mysql|mariadb|php-fpm|pureftpd} {start|stop|reload|restart|kill|status}
LNMP配置文件
1、 配置文件目錄
Niginx主配置文件目錄 /usr/local/nginx/conf/nginx.conf
Mysql配置文件目錄 /etc/my.cnf
PHP配置文件目錄 /usr/local/php/etc/php.ini
Php-fpm配置目錄 /usr/local/php/etc/php-fpm.conf
2、 配置詳解
#vi /usr/local/nginx/conf/nginx.conf
user www www;
#程序運行用戶和組
worker_processes auto;
#啟動進程,指定nginx啟動的工作進程數(shù)量,建議按照cpu數(shù)目來指定,一般等于cpu數(shù)目
error_log /home/wwwlogs/nginx_error.log crit;
#全局錯誤日志
pid /usr/local/nginx/logs/nginx.pid;
#主進程PID保存文件
#Specifies the value for maximum file descriptors that can be opened by thisprocess.
worker_rlimit_nofile 51200;
#文件描述符數(shù)量
events
{
use epoll;
#使用epoll模型,對于2.6以上的內(nèi)核,建議使用epoll模型以提高性能
worker_connections 51200;
#工作進程的大連接數(shù)量,根據(jù)硬件調(diào)整,和前面工作進程配合起來用,盡量大,但是別把cpu跑到100%就行每個進程允許的最多連接數(shù), 理論上每臺nginx服務(wù)器的大連接數(shù)為worker_processes*worker_connections,具體還要看服務(wù)器的硬件、帶寬等。
multi_accept on;
}
http
#整體環(huán)境配置--網(wǎng)站配置
{
include mime.types;
default_type application/octet-stream;
#設(shè)定mime類型,文件傳送類型mime.type文件定義
server_names_hash_bucket_size 128;
#保存服務(wù)器名字的hash表大小
client_header_buffer_size32k;
#客戶端請求頭部緩沖區(qū)大小
large_client_header_buffers 4 32k;
#大客戶端頭緩沖大小
client_max_body_size 50m;
#客戶端大上傳文件大?。∕)
sendfile on;
#sendfile指令指定 nginx 是否調(diào)用 sendfile 函數(shù)(zero copy 方式)來輸出文 件,對于普通應(yīng)用,必須設(shè)為 on。如果用來進行下載等應(yīng)用磁盤IO重負載應(yīng)用,可設(shè)置為off,以平衡磁盤與網(wǎng)絡(luò)I/O處理速度,降低系統(tǒng)的uptime.
tcp_nopush on;
#這個是默認的,結(jié)果就是數(shù)據(jù)包不會馬上傳送去,等到數(shù)據(jù)包大時,一次性的 傳輸出去,這樣有助于解決網(wǎng)絡(luò)堵塞。(只在sendfile on時有效)
keepalive_timeout 60;
#連接超時時間
tcp_nodelay on;
#禁用nagle算法,也即不緩存數(shù)據(jù)。有效解決網(wǎng)絡(luò)阻塞
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size256k;
#fastcgi設(shè)置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version1.1;
gzip_comp_level2;
gzip_types text/plain application/javascript
application/x-javascripttext/javascript text/css application/xml application/xml+rss;
gzip_varyon;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
#limit_conn_zone$binary_remote_addr zone=perip:10m;
##Ifenable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
#隱藏nginx版本號(curl -I 192.168.4.154可以查看,更加安全
#log format
log_format access '$remote_addr -$remote_user [$time_local]
"$request"'
'$status $body_bytes_sent"$http_referer" '
'"$http_user_agent"$http_x_forwarded_for';
#定義日志格式
server
{
listen 80 default_server;
#listen[::]:80 default_server ipv6only=on;
#監(jiān)聽80端口,WEB服務(wù)的監(jiān)聽設(shè)置,可以采用"IP地址:端口"形式
server_name www.lnmp.org;
#服務(wù)器名,可以寫多個域名,用空格分隔
index index.html index.htm index.php;
#默認網(wǎng)頁文件
root /home/wwwroot/default;
#網(wǎng)頁主目錄
#error_page 404 /404.html;
includeenable-php.conf;
location /nginx_status
{
stub_status on;
access_log off;
}
#開啟status狀態(tài)監(jiān)測
location ~.*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
#靜態(tài)文件處理,保存期30天
location ~.*\.(js|css)?$
{
expires 12h;
}
#js和css文件處理,保存期12小時
location ~/\.
{
deny all;
}
access_log /home/wwwlogs/access.log access;
#正確訪問日志
}
includevhost/*.conf;
#vhost/下子配置文件生效
}
檢查nginx配置文件語句錯誤
/usr/local/nginx/sbin/nginx-t
平滑重啟nginx進程
1)pkill -HUP nginx
2)/usr/local/nginx/sbin/nginx-s reload
七、配置實驗
1.nginx狀態(tài)監(jiān)控
location /nginx_status{
stub_status on;
access_log off;
}
#客戶端訪問網(wǎng)址:http://IP/nginx_status
注:"Active connections"表示當(dāng)前的活動連接數(shù);
"server accepts handled requests"表示已經(jīng)處理的連接信息
三個數(shù)字依次表示已處理的連接數(shù)、成功的TCP握手次數(shù)、已處理的請求數(shù)
實驗結(jié)果
2.nginx虛擬主機
使用Nginx搭建虛擬主機服務(wù)器時,每個虛擬WEB站點擁有獨立的"server { }"配置段,各自監(jiān)聽的IP地址、端口號可以單獨指定,當(dāng)然網(wǎng)站名稱也是不同的。
---基于域名的虛擬主機---
1. 兩個站點www.benet.com和www.accp.com
192.168.1.1 www.benet.com
192.168.1.1 benet.com
192.168.1.1 www.accp.com
192.168.1.1 accp.com
修改Linux下和windows下的hosts文件,使其能正常解析域名
2. 為兩個虛擬WEB主機分別建立網(wǎng)頁根目錄,并準(zhǔn)備測試首頁
mkdir -p /home/wwwroot/benet/
mkdir -p /home/wwwroot/accp/
3. 修改nginx.conf配置文件---> 建立域名虛擬主機
配置兩個"server {}"區(qū)域,分別對應(yīng)兩個WEB站點,指定各自的網(wǎng)站名稱、監(jiān)聽 地址、網(wǎng)站根目錄、訪問日志等信息。
在主配置文件當(dāng)中添加兩個虛擬主機的配置信息(添加在http { }范圍內(nèi))
server{
listen 80;
server_name www.benet.com benet.com;
charset utf-8;
access_log logs/benet.access.log;
location / {
root /home/wwwroot/benet;
index index.php index.html;
}
}
server{
listen 80;
server_name www.accp.com accp.com;
charset utf-8;
access_log logs/accp.access.log;
location / {
root /home/wwwroot/accp;
index index.html index.php;
}
}
4. 重新啟動nginx,使用瀏覽器分別通過www.benet.com和www.accp.com訪問 兩個WEB站點
檢測配置文件的正確性 /usr/local/nginx/sbin/nginx -t
重新加載配置文件 pkill -1 nginx |pkill -HUP nginx
5、測試結(jié)果
注:
檢測配置文件的正確性 出現(xiàn)的錯誤
A、文件中表示的注釋,必須每一行行首都要有 #
B、修改配置文件時注意不能多加一個字母
C、有時提示的錯行位置不一定準(zhǔn)確
3.列表頁顯示
server
{
listen 80;
server_name www.benet.com;
index index.html index.htm index.php;
root /home/wwwroot/benet;
autoindex on;
A、注釋掉benet主頁文件
B、在配置文件相應(yīng)的虛擬機主機配置區(qū)域內(nèi)添加 autoindexon;
保存,重新加載配置文件 pkill -1 nginx
此時,網(wǎng)頁只是顯示主頁目錄
4.rewrite(網(wǎng)站域名更新時,使用跳轉(zhuǎn)功能告知用戶域名的更改)
location ~ \.php${
proxy_pass http://127.0.0.1;
}
例1:域名跳轉(zhuǎn)
輸入www.benet.com,跳轉(zhuǎn)到www.accp.com
server{
listen 80;
server_name www.benet.com benet.com;
charset utf-8;
access_log logs/benet.access.log access;
location / {
root /home/wwwroot/benet;
index index.php index.html;
}
if ($http_host =www.benet.com) {
#判斷網(wǎng)站域名的頭部是否為www.benet.com,若是,則進行下面的跳轉(zhuǎn)
#本句為判斷語句,但不是shell中的if語句,所以結(jié)尾不使用 fi 結(jié)尾
rewrite (.*) http://www.accp.com permanent;
}
}
注意:此語句的添加位置,在server內(nèi)部,location的外部
刷新配置文件 測試正常跳轉(zhuǎn)
例2:文件跳轉(zhuǎn)
server{
listen 80;
server_name www.accp.com accp.com;
charset utf-8;
access_log logs/benet.access.log access;
location / {
root /home/wwwroot/accp;
index index.html index.php;
}
rewrite inde /indexa.html last;
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。