码迷,mamicode.com
首页 > 其他好文 > 详细

lnmp 虚拟主机配置及重写

时间:2015-05-30 22:27:12      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:

lnmp安装与调试,请看

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

虚拟主机的配置
编辑nginx配置文件 nginx.conf
此为主配置文件

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; 
}

===============================

配置虚拟主机
vim t.conf
即一个 server {} 为一个虚拟主机

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重写;
大小写匹配

~ 区分大小写匹配
~* 不区分大小写匹配

!~ 区分大小写不匹配
!~* 不区分大小写不匹配


文件及目录匹配


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

-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	
#则 ^/(\d+)$ index.php?a=$1 last;

#重写 www.a.com/action/100 -> index.php?a=action&id=100
#则 ^/(\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即可

 

lnmp 虚拟主机配置及重写

标签:

原文地址:http://www.cnblogs.com/lin3615/p/4541137.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!