lnmp 虛擬主機配置及重寫

lnmp安裝與調試,請看php

http://www.cnblogs.com/lin3615/p/4376224.htmlhtml

虛擬主機的配置
編輯nginx配置文件 nginx.conf
此爲主配置文件node

vim nginx.conf
#user nobody; 
# user 主模塊指令,指令nginx worker 運行用戶和用戶組(user xxxuser xxxgroup) ,
# 默認由nobody運行
#定義進程數,通常與cpu核心數同樣
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;#錯誤日誌級別
#error_log logs/error.log info; #錯誤日誌級別

#pid logs/nginx.pid; #pid 指令 指定進程id存儲位置

#events 指令 指令nginx 工做模式和鏈接數上限
events {
work-connections 1024;
}

#http服務器配置,同時引用外部的配置文件
http {
include mime.types; #包含文件mime.types
default_type application/octect-stream; #默認爲二進制流
#日誌格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

access_log logs/access.log main;
sendfile on; #高效文件傳輸模式,將tcp_nopush和tcp_nodely設置爲on
keepAlive_timeout 65; #客戶端鏈接保持活動的超時時間,超時後關閉鏈接
# 包含虛擬目錄中的文件,如,t.conf, b.conf
include /絕對路徑/目錄/*.conf; 
}

===============================nginx

配置虛擬主機
vim t.conf
即一個 server {} 爲一個虛擬主機
apache

server {
# 監聽的端口
listen 80;
# 主機名
server_name www.t.com;
#設置網頁字符編碼
#charset utf-8; 
#訪問日誌路路徑
access_log /絕對路徑/文件名.log main;
#默認請求
location / {
# 網頁文件存放的目錄
root /文檔目錄的絕對路徑/文件夾名;
#默認首頁文件,順序從左到右,若是找不到 index.php,則找下一個
index index.php index.html index.htm;
}
#定義頁面狀態碼爲 5xx系統的錯誤頁面	
error_page 500 502 504 /50x.html;
location = /50x.html {
root /絕對路徑/文檔目錄;
}
#設置能解釋php腳本,如下是tcp 模式,
#若是用要到 socket方式,則要另外配置,看最後
#php腳本請求所有轉發到 fastcgi處理,使用FastCGI默認配置.
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /絕對路徑/文檔文件夾名$fastcgi_script_name;
include fastcgi_params;
}
#禁止訪問 .ht.... 文件	
location ~\.ht {
deny all;
}

}

  

同理可配置另外一臺虛擬機:
b.conf,如下涉到url重寫;
大小寫匹配vim

~ 區分大小寫匹配
~* 不區分大小寫匹配服務器

!~ 區分大小寫不匹配
!~* 不區分大小寫不匹配app


文件及目錄匹配dom


-f 是否文件存在
!-f 是否文件不存在socket

-d 是否存在目錄
!-d 是否不存在目錄

-e 是否存在文件或目錄
!-e 是否不存在文件或目錄

-x 文件是否可執行
~!-x 文件是否不可執行

flag 標記

last 至關於apache 裏面的 [L]標誌,表示完成 rewrite
break 終止匹配,再也不匹配後面的規則
redirect 返回 302 臨時重定向,地址欄會顯示跳轉後的地址
permanent 返回301永久重定向,地址欄會顯示跳轉後的地址
##################################

server {
listen 80;
server_name www.b.com; 
access_log /絕對路徑/文件名.log main;
location / {
root /文檔目錄的絕對路徑/文件夾名;
index index.php index.html index.htm;
#################
#重寫 www.a.com/99 -> index.php?a=99	
#則 rewrite ^/(\d+)$ index.php?a=$1 last;

#重寫 www.a.com/action/100 -> index.php?a=action&id=100
#則 rewrite ^/(\w+)\/(\d+)$ index.php?a=$1&id=$2 last;
}

error_page 500 502 504 /50x.html;
location = /50x.html {
root /絕對路徑/文檔目錄;
}
location ~\.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /絕對路徑/文檔文件夾名$fastcgi_script_name;
include fastcgi_params;
}

location ~\.ht {
deny all;
}

}

######################

關於用 unix domain socket 配置方法
1.首先創建/dev/shm/php-cgi.sock文件,
而後將之改全部者改成nobody
(與 nginx的用戶一致,默認爲 nobody,可用 ps aux查看)

touch /dev/shm/php-cgi.sock
chown nobody:nobody /dev/shm/php-cgi.sock
chmod 0777 /dev/shm/php-cgi.sock

2.編輯上面的 nginx.conf中

#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;

3.修改 php-fpm.conf 配置(能夠搜索)

;listen = 127.0.0.1:9000
listen = /dev/shm/php-cgi.sock

重啓 php-fpm和nignx便可

相關文章
相關標籤/搜索