LNMP安裝與配置

LNMP安裝與配置javascript

1.安裝前準備(確認apache和mysql端口無  有的話中止stop運行php

1)關閉rpm默認安裝的apache和mysqlcss

[root@CentOS6 ~]# chkconfig --list | grep httpdhtml

[root@CentOS6 ~]# chkconfig --list | grep mysqldjava

[root@CentOS6 ~]# node

2)selinuxmysql

[root@CentOS6 selinux]# vi /etc/selinux/configlinux

# This file controls the state of SELinux on the system.nginx

# SELINUX= can take one of these three values:web

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

重啓服務reboot

 

3)禁用自啓動

[root@CentOS6 selinux]# vi /etc/rc.local

#!/bin/sh

#

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

 

touch /var/lock/subsys/local  下面的全部開機自啓動項所有刪除

[root@CentOS6 selinux]# source /etc/rc.local

 

4)保證yum源正常

A)mount 查看光盤是否掛載

B)沒有掛載的話 掛載

[root@CentOS6 selinux]# mount /dev/sr0 /mnt/cdrom

mount: block device /dev/sr0 is write-protected, mounting read-only

C)查看yum源是否可用

[root@CentOS6 selinux]# yum list

5)準備lnmp其餘的源代碼包

http://lnmp.org/install.html下載 

 

 

2.一鍵安裝過程

1)一鍵安裝過程

官網下載源碼包-->解壓(tar zxvf lnmp1.0-full.tar.gz)-->cd到目錄下-->執行一鍵安裝./centos.sh腳本

您能夠選擇使用下載版(推薦國外或者美國VPS使用)或者完整版(推薦國內VPS使用),二者沒什麼區別。

執行安裝程序前須要您確認您的Linux發行版,能夠執行:cat /etc/issue 查看是CentOS、Debian仍是Ubuntu,也能夠經過VPS服務商提供的控制面板上查看。肯定好以後,選擇下面對應系統的安裝命令: 

CentOS系統下執行:wget -c http://soft.vpser.net/lnmp/lnmp1.0-full.tar.gz && tar zxvf lnmp1.0-full.tar.gz && cd lnmp1.0-full && ./centos.sh

按上述命令執行後,會出現以下提示:
(注:若是是Debian系統,會提示Where are your servers located? asia,america,europe,oceania or africa,這裏是選擇服務器/VPS在哪一個大洲,通常都是美國VPS,直接回車就行,若是是中國的,輸入asia,回車。若是輸入有錯誤,能夠按住Ctrl再按Backspace鍵刪除,如下都可採用此方法刪除。)

這一步須要設置MySQL的root密碼,輸入後回車進入下一步,以下圖所示:

這裏須要確認是否啓用MySQL InnoDB,若是不肯定是否啓用能夠輸入 y ,這個能夠單獨在MySQL文件裏關閉,輸入 y 表示啓用,輸入 n 表示不啓用。輸入 y 或 n 後回車進入下一步,顯示以下信息:

這一步是選擇php版本,能夠選擇 PHP 5.3.17 或 PHP 5.2.17,安裝PHP 5.3.17的話輸入 y ,安裝PHP 5.2.17 輸入 n,輸入 y 或 n 後回車,進入下一步MySQL版本的選擇,以下圖:

能夠選擇MySQL 版本 5.5.27 或 5.1.60,安裝MySQL 5.5.27的話輸入 y ,安裝MySQL 5.1.60 輸入n,輸入 y 或 n 後回車,完成選擇。

提示"Press any key to start...",按任意鍵確認開始安裝。
LNMP腳本就會自動安裝編譯Nginx、MySQL、PHP、phpMyAdmin、Zend Optimizer這幾個軟件。

安裝時間可能會幾十分鐘到幾個小時不等,主要是機器的配置網速等緣由會形成影響。

2)、安裝完成
若是顯示以下界面:80端口

說明已經安裝成功。
接下來按添加虛擬主機教程,添加虛擬主機,經過sftpftp服務器上傳網站,將域名解析到VPS或服務器的IP上,解析生效便可使用。

3)、安裝失敗

若是出現相似上圖的提示,則代表安裝失敗,說明沒有安裝成功!!須要用winscp或其餘相似工具,將/root目錄下面的lnmp-install.log下載下來,到LNMP支持論壇發帖註明你的發行版名稱版本號(可經過 cat /etc/issue得到)、32位仍是64位,並將lnmp-install.log壓縮以附件形式上傳到論壇,咱們會經過日誌查找錯誤,並給予相應的解決方法。

 

4)、eAccelerator,xcache,memcached,imageMagick,ionCube的安裝

本文主要介紹eAcceleratorxcachememcachedimageMagickionCube這幾個PHP加速和php擴展的安裝及使用,這些不必定對每一個人都有用,本身按須要安裝,下面會對各個程序的做用、安裝方法及相關注意事項。

a)、eAccelerator

eAccelerator是一個自由開放源碼php加速器,優化和動態內容緩存,提升了php腳本的緩存性能,使得PHP腳本在編譯的狀態下,對服務器的開銷幾乎徹底消除。 它還有對腳本起優化做用,以加快其執行效率。

安裝
進入lnmp解壓後的目錄,執行:./eaccelerator.sh 運行後有以下提示:

eaccelerator 0.9.5.3 支持PHP 5.2,如需此版本,輸入 old 回車。
eaccelerator 0.9.6.1 支持PHP 5.二、5.3,如需此版本,輸入 new 回車。
eaccelerator 1.0-dev 支持PHP 5.二、5.三、5.4,如需此版本輸入 dev 回車。

提示「Press any key to start...or Press Ctrl+c to cancel」 後回車確認,腳本就會自動安裝eaccelerator。

b)、xcache

XCache 是一個國人開發的又快又穩定的 PHP opcode 緩存器. 通過良好的測試並在大流量/高負載的生產機器上穩定運行. 通過(在 linux 上)測試並支持全部現行 PHP 分支的最新發布版本。

安裝
進入lnmp解壓後的目錄,執行:./xcache.sh 運行後有以下提示:

一個有兩個版本能夠選擇,分別是XCache 2.0.0 和XCache 3.0.1 ,建議安裝XCache 3.0.1 輸入new 回車

出現「Press any key to start...or Press Ctrl+c to cancel「,再次回車確認便可開始安裝。

c)、memcached

Memcached 是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它經過在內存中緩存數據和對象來減小讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。

安裝
進入lnmp解壓後的目錄,執行:./memcached.sh
回車確認後就會自動安裝memcache php擴展和memcached。

d)、imageMagick

ImageMagick是一個用於查看、編輯位圖文件以及進行圖像格式轉換的開放源代碼軟件套裝。它能夠讀取、編輯超過100種圖象格式。可用來替換GD庫。

安裝
進入lnmp解壓後的目錄,執行:./imageMagick.sh
回車確認後就會自動安裝imageMagick。

設置:好比在DiscuzX裏設置時路徑須要填寫:/usr/local/imagemagick/bin/ 而且禁用函數裏的exec要去掉才能夠正常使用。

 

 

5)、LNMP相關軟件目錄及文件位置
除去所必須的依賴包,LNMP一鍵安裝包會安裝一下軟件:
默認安裝軟件:

· Nginx

· MySQL

· PHP

· PHPMyAdmin

· Zend Optimizer

可選軟件:

· PureFTPd(可選)

· Proftpd(可選)

· Apache(可選)

· eAccelerator(可選)

· ionCube(可選)

· imageMagick(可選)

· memcached(可選)

· xcache(可選)

註明可選的爲可以使用安裝腳本自行安裝,未註明的爲會自動安裝。
不必定可選包都適合你,按需安裝便可。

 

 

LNMP相關軟件安裝目錄
Nginx 目錄: /usr/local/nginx/
MySQL 目錄 : /usr/local/mysql/
MySQL數據庫所在目錄:/usr/local/mysql/var/
PHP目錄 : /usr/local/php/
PHPMyAdmin目錄 : 0.9版爲/home/wwwroot/phpmyadmin/ 1.0版爲 /home/wwwroot/default/phpmyadmin/ 強烈建議將此目錄重命名爲其不容易猜到的名字。phpmyadmin可本身從官網下載新版替換。
默認網站目錄 : 0.9版爲 /home/wwwroot/ 1.0版爲 /home/wwwroot/default/
Nginx日誌目錄:/home/wwwlogs/
/root/vhost.sh添加的虛擬主機配置文件所在目錄:/usr/local/nginx/conf/vhost/-------!!!!!!!!!!!!!!!!!!!!!!!
PureFtpd 目錄:/usr/local/pureftpd/
PureFtpd web管理目錄: 0.9版爲/home/wwwroot/default/ftp/ 1.0版爲 /home/wwwroot/default/ftp/
Proftpd 目錄:/usr/local/proftpd/

 

查看進程  ps auxw 換行查看進程  

終止進程  pkill  -9  php-fpm

開始進程 [root@CentOS6 selinux]# /root/lnmp start

平滑重啓nginx進程 pkill -HUP nginx

 

LNMP相關配置文件位置
Nginx主配置文件:/usr/local/nginx/conf/nginx.conf
/root/vhost.sh添加的虛擬主機配置文件:/usr/local/nginx/conf/vhost/域名.conf
MySQL配置文件:/etc/my.cnf
PHP配置文件:/usr/local/php/etc/php.ini
php-fpm配置文件:/usr/local/php/etc/php-fpm.conf
PureFtpd配置文件:/usr/local/pureftpd/pure-ftpd.conf
PureFtpd MySQL配置文件:/usr/local/pureftpd/pureftpd-mysql.conf
Proftpd配置文件:/usr/local/proftpd/etc/proftpd.conf
Proftpd 用戶配置文件:/usr/local/proftpd/etc/vhost/用戶名.conf

 

LNMPA相關目錄文件位置
Apache目錄:/usr/local/apache/
Apache配置文件:/usr/local/apache/conf/httpd.conf
Apache虛擬主機配置文件目錄:/usr/local/apache/conf/vhost/

 

6)、LNMP狀態管理命令
LNMP狀態管理命令:

LNMP狀態管理: /root/lnmp {start|stop|reload|restart|kill|status}
Nginx狀態管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL狀態管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached狀態管理:/etc/init.d/memcached {start|stop|restart}
PHP-FPM狀態管理:/etc/init.d/php-fpm {start|stop|quit|restart|reload|logrotate}
PureFTPd狀態管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd狀態管理: /etc/init.d/proftpd {start|stop|restart|reload}

如重啓LNMP,輸入命令:/root/lnmp restart 便可,單獨重啓mysql:/etc/init.d/mysql restart

 

LNMPA狀態管理命令:

LNMPA狀態管理: /root/lnmpa {start|stop|reload|restart|kill|status}
Nginx狀態管理:/etc/init.d/nginx {start|stop|reload|restart}
MySQL狀態管理:/etc/init.d/mysql {start|stop|restart|reload|force-reload|status}
Memcached狀態管理:/etc/init.d/memcached {start|stop|restart}
PureFTPd狀態管理: /etc/init.d/pureftpd {start|stop|restart|kill|status}
ProFTPd狀態管理: /etc/init.d/proftpd {start|stop|restart|reload}
Apache狀態管理:/etc/init.d/httpd {start|stop|restart|graceful|graceful-stop|configtest|status}

 

[root@CentOS6 selinux]# cd /etc/rc.d/init.d------------------快捷方式------同樣的效果

[root@CentOS6 init.d]# ls

abrt-ccpp     certmonger  ip6tables     messagebus

Nginx爲源碼包所裝

[root@CentOS6 rc.d]# cd /etc/init.d----------------------------快捷方式--------同樣的效果

[root@CentOS6 init.d]# ls

abrt-ccpp     certmonger  ip6tables     messagebus

 

 

4. 修改Nginx配置文件-------不是默認的配置文件 是通過修改優化的配置文件

nginx配置文件的位置:

[root@CentOS6 init.d]# vi  /usr/local/nginx/conf/nginx.conf

user  www www;  ------------僞用戶 僞用戶組

[root@CentOS6 ~]# cat /etc/passwd | grep www

apache:x:48:48:Apache:/var/www:/sbin/nologin

www:x:508:509::/home/www:/sbin/nologin

Apache的僞用戶

[root@CentOS6 ~]# cat /etc/passwd | grep daemon

daemon:x:2:2:daemon:/sbin:/sbin/nologin

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin


(基本配置)
worker_processes 1; -------單位/個數 通常寫爲CPU的數量 通常是兩個

#啓動進程,一般設置成和cpu的數量相等。至關於cpu個數

error_log  logs/nginx_error.log; ---------相對路徑--相對於安裝位置

#錯誤日誌

pid(進程id       vi /usr/local/nginx/logs/nginx.pid;

[root@CentOS6 ~]# vi /usr/local/nginx/logs/nginx.pid-----1588

root      1588  0.0  0.1   7072   796 ?        Ss   Jul02   0:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#主進程PID保存文件 --------判斷apache是否運行

#Specifies the value for maximum file descriptors that can be opened by this process. 
worker_rlimit_nofile 51200;

#文件描述符數量---------不是最大併發鏈接數

Unix 系統最大鏈接併發數

[root@CentOS6 ~]# ulimit -a

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024  --------打開文件

pipe size            (512 bytes, -p) 8

[root@CentOS6 ~]# ulimit -SHn 65535-------此條命令須要每次開機都執行

[root@CentOS6 ~]# vi /etc/rc.local -------寫入開機自啓動

#!/bin/sh

# This script will be executed *after* all the other init scripts.

# You can put your own initialization stuff in here if you don't

# want to do the full Sys V style init stuff.

 

touch /var/lock/subsys/local

ulimit -SHn 65535

 

open files                      (-n) 65535


events  {
   use epoll;

#網絡I/O模型,建議linux使用epoll,FreeBSD使用kqueue

#epoll是多路複用IO(I/O Multiplexing)中的一種方式,可是僅用於linux2.6以 上內 核,能夠大大提升nginx的性能
   worker_connections 51200;

#單個工做進程最大容許鏈接數     最大併發鏈接數
}

http 

#總體環境配置apach默認配置)
{
   include       mime.types;(子配置文件)
   default_type  application/octet-stream;
#設定mime類型,文件傳送類型由mime.type文件定義

 

                server_names_hash_bucket_size 128; #保存服務器名字的hash表大小

                client_header_buffer_size 32k; #客戶端請求頭部緩衝區大小

                large_client_header_buffers 4 32k; #最大客戶端頭緩衝大小

                client_max_body_size 50m; #客戶端最大上傳文件大小(M)

 

                sendfile on;

#sendfile 指令指定 nginx 是否調用 sendfile 函數(zero copy 方式)來輸出文 件,對於普通應用,必須設爲 on若是用來進行下載等應用磁盤IO重負載應用,可 設置爲off,以平衡磁盤與網絡I/O處理速度,下降系統的uptime.

                tcp_nopush     on;

#這個是默認的,結果就是數據包不會立刻傳送出去,等到數據包最大時,一次性的 傳輸出去,這樣有助於解決網絡堵塞。(只在sendfile on時有效)

 

                keepalive_timeout 60;

#鏈接超時時間

 

                tcp_nodelay on;

#禁用nagle算法,也即不緩存數據。

 

                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_size 256k;

#fastcgi設置

 

                gzip on;

                gzip_min_length  1k;

                gzip_buffers     4 16k;

                gzip_http_version 1.0;

                gzip_comp_level 2;

                gzip_types       text/plain application/x-javascript text/css application/xml;

                gzip_vary on;

                gzip_proxied        expired no-cache no-store private auth;

                gzip_disable        "MSIE [1-6]\.";

#開啓gzip網絡壓縮

 

                #limit_zone  crawler  $binary_remote_addr  10m;

 

                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------每個server就是一個網站

        {

                listen       80;

#監聽80端口

                server_name www.lnmp.org;

#服務器名

                index index.html index.htm index.php;

#默認網頁文件

                root  /home/wwwroot/default;

#網頁主目錄

 

                location ~ .*\.(php|php5)?$  每個location都是一個匹配的區域

  

                        {

                                try_files $uri =404;

#分析文件是否存在,若是不存在報404錯誤

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

#指定FastCGI服務器監聽端口與地址。這裏使用unix socket

#nginx以unix-domain-socket方式鏈接fastcgi(php)。更快,適合大流量訪問

#另一種 nginx鏈接fastcgi的方式是http方式的[ 127.0.0.1:9000  方式鏈接 fastcgi(php)

                                fastcgi_index index.php;

#默認網頁文件

                                include fcgi.conf;

#fcgi.conf配置文件生效

                        }

 

                location /status {  -----------/不可省略

  

                        stub_status on;

                        access_log   off;

                }

#開啓status狀態監測----監控服務器時使用

 

                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

                        {

                                expires      30d;    ---緩存30天

                        }

#靜態文件處理,保存期30天

 

                location ~ .*\.(js|css)?$

                        {

                                expires      12h;

                        }

#匹配js和css文件處理,保存期12小時

 

                access_log  /home/wwwlogs/access.log  access;日誌格式 調用前面的日誌格式

#正確訪問日誌

        }

include vhost/*.conf;

#vhost/下子配置文件生效

}

 

 

5.配置開機啓動nginx,php-fpm,ulimit

1)nginx

Vi /etc/rc.local

/usr/local/nginx/sbin/nginx

2)php-fpm

Vi /etc/rc.local

/usr/local/php/sbin/php-fpm start

3)ulimit

Vi /etc/rc.local

ulimit -SHn 65535   ----------

4)mysql

Vi /etc/rc.local

/usr/local/mysql/bin/mysqld_safe  --user=mysql  &

 

一鍵安裝包已經完成自啓動,加入了chkconfig管理,能夠直接使用service命令和chkconfig命令管理

已經自動加入了開機自啓動 不須要在/etc/rc.local裏面再次寫入!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

使用chkconfig 作的開機自啓動

查看:

[root@CentOS6 init.d]# chkconfig --list | grep nginx

nginx           0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

[root@CentOS6 init.d]# chkconfig --list | grep php-fpm

php-fpm         0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉

[root@CentOS6 init.d]#  

 

6.檢查nginx配置文件語句錯誤

/usr/local/nginx/sbin/nginx -t

[root@CentOS6 ~]# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

[root@CentOS6 ~]#

 

7.平滑重啓nginx進程------先重啓沒有訪問的進程 讓客戶端感受不到

1)pkill -HUP nginx

2)kill -HUP `pgrep -uroot nginx`

   Pgrep  -uroot  nginx  取出nginx主進程PID

3)/usr/local/nginx/sbin/nginx -s reload

 


8.配置nginx虛擬主機

 

Sina和sohu域名事先解析

 

Vi /usr/local/nginx/conf/nginx.conf

==èwww.sina.com公司網站

server

        {

                listen       80;

                server_name www.sina.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sina;

 

                location ~ .*\.(php|php5)?$

                        {

                                try_files $uri =404;

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

                                fastcgi_index index.php;

                                include fcgi.conf;

                        }

}

 

==èwww.sohu.com公司網站

 

server

        {

                listen       80;

                server_name www.sohu.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sohu;

 

                location ~ .*\.(php|php5)?$

                        {

                                try_files $uri =404;

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

                                fastcgi_index index.php;

                                include fcgi.conf;

                        }

        }

重啓nginx

最後在客戶端測試虛擬主機www.baidu.com和www.sina.com兩家公司網站

[root@CentOS6 ~]# mkdir /home/wwwroot/sina

[root@CentOS6 ~]# mkdir /home/wwwroot/sohu

[root@CentOS6 ~]# vi /home/wwwroot/sina/index.html     sina

[root@CentOS6 ~]# vi /home/wwwroot/sohu/index.html    sohu

[root@CentOS6 ~]# pkill -HUP nginx

[root@CentOS6 ~]#

 

 

9.列表頁顯示

server

        {

                listen       80;

                server_name www.sina.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sina;

                autoindex on;     --------------------------apache的index權限

 

加入 autoindex on; 

 

!pkill 調用最後一個以此字符串開頭的命令

[root@CentOS6 sina]# !pkill

pkill -HUP nginx

[root@CentOS6 sina]#

 

 

10.nginx狀態監控

location /nginxstatus{

        stub_status on;

        access_log  off;

        }

#客戶端訪問網址:http://IP/nginxstatus

 

11.rewrite正則過濾

location ~ \.php$ {

        proxy_pass   http://127.0.0.1;

        }

Rewrite指令最後一項參數爲flag標記,支持的flag標記以下:

Last(文件跳轉)

中止執行當前這一輪的ngx_http_rewrite_module指令集,而後查找匹配改變後URI的新location;

Break

中止執行當前這一輪的ngx_http_rewrite_module指令集;

Redirect

在replacement字符串未以「http://」或「https://」開頭時,使用返回狀態碼爲302的臨時重定向;

Permanent(域名跳轉)

返回狀態碼爲301的永久重定向。

 

Last和break用來實現uri重寫,瀏覽器地址欄的url地址不變,但在服務器訪問的路徑發生了變化,redirect和permanent用來實現url跳轉,瀏覽器地址欄會顯示跳轉後的url地址,使用alias指令時必須使用last標記,使用proxy_pass指令時要使用break標記,last標記在本條rewrite規則執行完畢後,會對其所在的server{}標籤從新發起請求,而break標記則在本條規則匹配完成後,終止匹配,再也不匹配後面的規則.

 

 

例1:域名跳轉

輸入www.sina.com,跳轉到www.sohu.com

server

        {

                listen       80;

                server_name www.sina.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sina;

 

                if ($http_host = www.sina.com) {

                        rewrite  (.*)  http://www.sohu.com  permanent;(標記)

                }

 

                location ~ .*\.(php|php5)?$

                        {

                                try_files $uri =404;

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

                                fastcgi_index index.php;

                                include fcgi.conf;

                        }

}

 

server

        {

                listen       80;

                server_name www.sohu.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sohu;

 

                location ~ .*\.(php|php5)?$

                        {

                                try_files $uri =404;

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

                                fastcgi_index index.php;

                                include fcgi.conf;

                        }

        }

 

例2:文件跳轉

server

        {

                listen       80;

                server_name www.sina.com;

                index index.html index.htm index.php;

                root  /home/wwwroot/sina;

 

                rewrite inde /indexa.html last;

 

                location ~ .*\.(php|php5)?$

                        {

                                try_files $uri =404;

                                fastcgi_pass  unix:/tmp/php-cgi.sock;

                                fastcgi_index index.php;

                                include fcgi.conf;

                        }

}

 

12.代理負載均衡技術(反向代理)

 

若是是unix 使用squid+其餘支持 搭建

 

http

        {

upstream myweb1 {

#定義地址池

        server 192.168.244.10:80;

        server 192.168.244.11:80;

}

    server {

        listen       80;

        server_name  www.sohu.com;

#使用www.sohu.com訪問

location / {

proxy_pass http://myweb1; --------------------把全部的apache請求轉發給web服務器

#使用地址池

proxy_set_header Host $host;

#利用HOST變量向後端服務器傳遞須要解析的客戶端訪問的域名(傳遞域名)

proxy_set_header X-Forwarded-For $remote_addr;

#$remote_addr 把客戶端真實IP賦予X-Forwarded-For。後端服務器才能獲取真實的客戶端IP。以便記錄日誌,要不日誌中記錄的訪問信息都是負載服務器,而不是客戶端(傳遞IP)

 

正常:客戶端-->請求---->反向代理服務器122 ->web服務器 請求很是小

正常:web服務器-->響應--->反向代理服務器-->(大數據回來響應)->宕機

加上以上兩句話的做用是當用戶輸入域名訪問的時候 反向代理服務器接收域名的同時把客戶端得ip傳給web服務器   web服務器響應的時候就會經過客戶端的ip繞過反向代理服務器 直接去響應客戶端  避免了反向服務器的宕機

 

}

}

}

 

1.全部的server刪掉

2.定義地址池 放入http內部

3.定義訪問網站 以及location配置

4.web服務器的數據庫一、2是能夠實現同步更新的(主從備份、主主備份)

相關文章
相關標籤/搜索