location / {
root D:/phpweb/wwwroot;
index index.php index.html index.htm;
rewrite ^(.*)/t(\d+)\.html$ $1/index.php?t=3 last;
网址输入 t3.html
仔细观察 rewrite ^(.)/t(\d+).html$ $1/index.php?t=3 last;其实感觉nginx的伪静态规则蛮好写的。就是用正则的基础上,一个rewrite来声明,然后^是伪静态规则开头,(.)匹配任意字符,这里匹配的就是域名了,t就是你在这里想加的字符,如你可以加apple、orange这样的分类名了,(\d+)匹配的是数字,.html匹配的是后缀,$就是正则匹配的结束。后面半部分就是要改写的url了,用$1打头,表示域名,/index.php?t=3就是要改写的URL,用last;结束即可。 可以作为独立文件 写成.htaccess 然后引用 并且过滤
.htaccess
http://www.jb51.net/article/59376.htm
反向代理 apache
下面说下何为反向代理,以及为何进行反向代理。按照百科的介绍:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。说得简明点,按照我的理解,反向代理就是一个服务器负责接收外网的请求,但自己不处理,而是告诉其他的内网服务器去处理,并把人家处理的结果返回给用户。从用户角度来看,请求就是这个代理服务器来处理的,实际上他就是转发了一下,返回人家的结果
Nginx处理静态内容是把好手,Apache虽然占用内存多了点,性能上稍逊,但一直比较稳健。倒是Nginx的FastCGI有时候会出现502 Bad Gateway错误。一个可选的方法是Nginx做前端代理,处理静态内容,动态请求统统转发给后端Apache。Nginx Server配置如下(测试环境):
其中Nginx全面接管80端口,Apache退居二线,监听8080端口。
在nginx的配置文件编写中,location的匹配规则基本遵循以下2个方面:
先匹配普通,再匹配正则 (但正则匹配可能会覆盖普通匹配),一句话描述:正则location让步普通location的严格精确匹配结果;但覆盖普通location的最大前缀匹配结果。
匹配普通时与编辑顺序无关,匹配正则时与编辑顺序有关
1.不带前缀(普通location):最大前缀匹配或者严格精确匹配
2.=(普通location):等于匹配(严格精确匹配)
3.~(普通location):表示“非”,~表示“正则”,意思是:不要继续匹配正则,(最大前缀匹配或者严格精确匹配)
4.~(正则location):区分大小写匹配
5.~*(正则location):不区分大小写匹配
6.@(指定匹配):指定使用location名称
参考nginx.conf
https://my.oschina.net/u/2257245/blog/412249
优化nginx.conf
https://segmentfault.com/a/1190000002797601
location 匹配规则
http://54rd.net/html/2015/webserver_0107/13.html
proxy实例讲解(HTTP,HTTPS)
http://54rd.net/html/2015/webserver_0125/35.html
wamp套餐使用fastcgi 提高性能 (wamp套餐默认不使用fastcgi 可在phpifno查看)
https://commaster.net/content/installing-php-fastcgi-and-zend-opcache-wampserver 老外神文
大概修改以下文件
主要操作 主要文件nginx.conf vhost httpd.conf httpd-vhosts.conf
继承文件 proxy.conf proxy-pass-php.conf
额外操作 日志文件 log
为了更有效,快捷,偷懒 实际操作时候我用了使用 centos 和 lnmpa环境包
http://lnmp.org/
LNMPA 目录结构
LNMPA相关目录文件位置
LNMPA默认网站配置文件:
nginx : /usr/local/nginx/conf/nginx.conf
apache : /usr/local/apache/conf/httpd.conf
FAQ: http://lnmp.org/faq/lnmp-software-list.html
中文文件名乱码
http://blog.chinaunix.net/uid-26569436-id-3050965.html
首先查询支持的编码:
locale -a
如果没有你需要的编码,例如zh_CN.utf8
root运行: #dpkg-reconfigure locales
选择你需要的编码,用空格选中,可多选。tab选择“OK”,回车。
默认编码选择zh_CN.utf8
安装你所需要的编码。
修改/etc/profile,
export LC_ALL=C
export TERM=xterm-color
export LC_CTYPE=zh_CN.gb2312
export LANG=en_US.UTF-8
注意在配置过程中 可能会遇到防火墙无法连接相关服务
防火墙相关命令如下(centos 6)
service iptables start
--启动
service iptables status
--状态
service iptables stop
--停止
service iptables restart
--从起
配置文件目录
/etc/sysconfig/iptables
内容大致为
*filter
:INPUT ACCEPT [4:116]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1:152]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
COMMIT