首页 > 代码库 > wnmpa或lnmpa 服务器搭建和原理

wnmpa或lnmpa 服务器搭建和原理

1.wnmpa

新手可以先使用windows基础安装 明白原理 需要wampserver服务

  安装nginx
    http://jingyan.baidu.com/article/7f41ecec0c5b27593d095cc5.html

    进入nginx目录
    start nginx.exe--启动

    nginx.exe -s stop--停止nginx

    nginx.exe -s reload--重新加载nginx

    nginx.exe -s quit--退出nginx


补充:另外找到一个解决方案就是在php的location里面加上这么一句话“fastcgi_intercept_errors on;”,原因是默认情况下只要是php文件,nginx不管他存不存在,都会交给php去处理,这个错误其实是php-cgi报告出来的,加上“fastcgi_intercept_errors on;”这个指令后就让nginx判断404这样的常规错误啦^^


添加虚拟主机
    在nginx.conf 主server{}后添加  include D:/wnmp/nginx/conf/vhost/*.conf;
    新建vhost文件夹 添加类似 miku.conf
    内容为 miku为目录自定义修改
    server {

        listen 80;
        server_name localmiku;
        root           D:/wnmp/www/miku;
        error_log  logs/miku.error.log;
              

        location / {
                index  index.html index.htm index.php miku.html;
        }

        #规定需要404页面
        error_page  404              /404.html;

        #如果使用php-fpm 来处理php
         location ~ \.php$ {
          
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;  
        }
     }

     从起nginx

伪静态

     原理
      nginx里使用伪静态是直接在nginx.conf 中写规则的,并不需要像apache要开启写模块(mod_rewrite)才能进行伪静态。
      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

 

2. lnmpa
      为了更有效,快捷 实际操作时候使用 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

    注意在配置过程中 可能会遇到防火墙无法连接相关服务
    防火墙相关命令如下
    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

wnmpa或lnmpa 服务器搭建和原理