您的位置:首页 > 运维架构 > Nginx

Nginx多站点配置

2016-03-23 12:04 567 查看
 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler使用。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

     本人正在学习liunx,还未在liunx上面搭建服务器,之前的win服务器我是用nginx代理的。

     Nginx是为linux系统设计的,所以网上大都是linux版本,在这里我推荐用phpstudy,自带nginx的win移植版,简单快捷不需要自己去配置。



这是早期文章了,现在nginx有官方windows移植版本了,但是使用的是win32的api效率比linux差很多,还是建议windows平台使用apache或者iis把

传送门:http://nginx.org/en/docs/windows.html

其实这些软件配置都有相似之处的,道理都是一样的,感觉nginx伪造404真的好方便,apache就不行,只是nginx的URL重写没有apache那么好用



     Nginx的配置参数,我以后有时间再说,这里先讲一下基础的网站配置情况。

     与apache配置差不多,nginx的多站点也是靠虚拟主机来完成的,虽然咋一看server的代码那么的长,然而本质和apache还是一样的,只是apache定义了很多全局的,而nginx默认分别配置在每个虚拟主机里了

server {

        listen       80;

#这个是监听80端口

        server_name  xx.xx.com;

#这个是虚拟主机服务的网址

        #charset koi8-r;

#这个是编码方式,我是选择了nginx默认的就没有打开这个功能

        #access_log  logs/host.access.log  main;

#这个可以配置日志,也可以自定义日志结构

        root  "C:/xx/xx";

#这个是网站的根目录

        location / {

            index  index.html index.htm index.php l.php;

           autoindex  off;

        }

#这个是location配置项,是nginx的一个重要的配置项,location / 表示配置网站的根目录下的规则

     #error_page  404              /404.html;

        # redirect server error pages to thestatic page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

#自定义错误页

        # proxy the PHP scripts to Apachelistening on 127.0.0.1:80

        #

        #location ~ \.php$ {

        #   proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGIserver listening on 127.0.0.1:9000

        #

        location ~ \.php(.*)$  {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            fastcgi_param  PATH_INFO $fastcgi_path_info;

            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;

            include        fastcgi_params;

        }

#这些是phpstudy的一些php配置项

        # deny access to .htaccess files, ifApache's document root

        # concurs with nginx's one

        #

        #location ~ /\.ht {

        #   deny  all;

        #}

    }

下面就说一下location配置项:

location /xx {

      deny all;

      return 404;

}

      这个是禁止访问xx文件夹,并返回404错误,而不是返回403错误,这个比较好,也就是别人爬你网站的时候,即使他猜到了你的敏感文件存放的目录名也不知道这个目录真的存在~,我在apache那里就找不到一中比较好的403转404的方法,nginx这一点确实好用….

if  ($request_uri ~* "/xx.php") {

            return 404;

}

     Nginx支持简单的判断语句,这个是禁止访问根目录下的xx.php文件,并返回404错误,其实不一定是php文件,重要的ini,txt,conf文件都可以这样限制访问,而且做到了隐藏(返回404)~

 

之前忙了一些其他事情,一上午过去了,就先写这么多吧,其他的我以后再抽空总结~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息