zoukankan      html  css  js  c++  java
  • windows下nginx安装、配置与使用

    目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。

        相比apeach、iis,nginx以轻量级、高性能、稳定、配置简单、资源占用少等优势广受欢迎。

    1)下载地址:

      http://nginx.org

    2)启动

      解压至c: ginx,运行nginx.exe(即nginx -c conf ginx.conf),默认使用80端口,日志见文件夹C: ginxlogs

    3)使用

      http://localhost

    4)关闭

      nginx -s stop 或taskkill /F /IM nginx.exe > nul 
    5)常用配置

       C: ginxconf ginx.conf,使用自己定义的conf文件如my.conf,命令为nginx -c confmy.conf

      常用配置如下: 
      Nginx.conf代码 
      http { 
       server { 
       #1.侦听80端口 
       listen 80; 
       location / { 
       # 2. 默认主页目录在nginx安装目录的html子目录。 
       root html; 
       index index.html index.htm; 
       # 3. 没有索引页时,罗列文件和子目录 
       autoindex on; 
       autoindex_exact_size on; 
       autoindex_localtime on; 
       } 
       # 4.指定虚拟目录 
       location /tshirt { 
       alias D:programsApache2htdocs shirt; 
       index index.html index.htm; 
       } 
       } 
       # 5.虚拟主机www.emb.info配置 
       server { 
       listen 80; 
       server_name www.emb.info; 
       access_log emb.info/logs/access.log; 
       location / { 
       index index.html; 
       root emb.info/htdocs; 
       } 
       } 
      } 
      
      http {
       server {
       #1.侦听80端口 
       listen 80; 
       location / {
       # 2. 默认主页目录在nginx安装目录的html子目录。
       root html;
       index index.html index.htm;
       # 3. 没有索引页时,罗列文件和子目录
       autoindex on;
       autoindex_exact_size on;
       autoindex_localtime on;
       }
       # 4.指定虚拟目录
       location /tshirt {
       alias D:programsApache2htdocs shirt;
       index index.html index.htm;
       }
       }
       # 5.虚拟主机www.emb.info配置
       server {
       listen 80;
       server_name www.emb.info;
       access_log emb.info/logs/access.log;
       location / {
       index index.html;
       root emb.info/htdocs;
       }
       }
      }
      
      小提示: 
      运行nginx -V可以查看该Win32平台编译版支持哪些模块。我这里的结果为: 
      Log代码 
      nginx version: nginx/0.7.65 
      TLS SNI support enabled 
      configure arguments: 
      --builddir=objs.msvc8 
      --crossbuild=win32 
      --with-debug --prefix= 
      --conf-path=conf/nginx.conf 
      --pid-path=logs/nginx.pid 
      --http-log-path=logs/access.log 
      --error-log-path=logs/error.log 
      --sbin-path=nginx.exe 
      --http-client-body-temp-path=temp/client_body_temp 
      --http-proxy-temp-path=temp/proxy_temp 
      --http-fastcgi-temp-path=temp/fastcgi_temp 
      --with-cc-opt=-DFD_SETSIZE=1024 
      --with-pcre=objs.msvc8/lib/pcre-7.9 
      --with-openssl=objs.msvc8/lib/openssl-0.9.8k 
      --with-openssl-opt=enable-tlsext 
      --with-zlib=objs.msvc8/lib/zlib-1.2.3 
      --with-select_module 
      --with-http_ssl_module 
      --with-http_realip_module 
      --with-http_addition_module 
      --with-http_sub_module 
      --with-http_dav_module 
      --with-http_stub_status_module 
      --with-http_flv_module 
      --with-http_gzip_static_module 
      --with-http_random_index_module 
      --with-http_secure_link_module 
      --with-mail 
      --with-mail_ssl_module 
      --with-ipv6 
      
      nginx version: nginx/0.7.65
      TLS SNI support enabled
      configure arguments: 
      --builddir=objs.msvc8 
      --crossbuild=win32 
      --with-debug --prefix= 
      --conf-path=conf/nginx.conf 
      --pid-path=logs/nginx.pid 
      --http-log-path=logs/access.log 
      --error-log-path=logs/error.log 
      --sbin-path=nginx.exe 
      --http-client-body-temp-path=temp/client_body_temp 
      --http-proxy-temp-path=temp/proxy_temp 
      --http-fastcgi-temp-path=temp/fastcgi_temp 
      --with-cc-opt=-DFD_SETSIZE=1024 
      --with-pcre=objs.msvc8/lib/pcre-7.9 
      --with-openssl=objs.msvc8/lib/openssl-0.9.8k 
      --with-openssl-opt=enable-tlsext 
      --with-zlib=objs.msvc8/lib/zlib-1.2.3 
      --with-select_module 
      --with-http_ssl_module 
      --with-http_realip_module 
      --with-http_addition_module 
      --with-http_sub_module 
      --with-http_dav_module 
      --with-http_stub_status_module 
      --with-http_flv_module 
      --with-http_gzip_static_module 
      --with-http_random_index_module 
      --with-http_secure_link_module 
      --with-mail 
      --with-mail_ssl_module 
      --with-ipv6
      
      显然,最经常用的memcache, rewrite模块都没在其中,因此该win32编译版本仅能供基本开发测试使用,对于产品平台,应该重新编译自己想要的win32版本,或者在linux下使用更方便。

    6)查看nginx进程

      tasklist /fi "imagename eq nginx.exe",如下显示:
    映像名称                       PID 会话名              会话#       内存使用
    ========================= ======== ================ =========== ============
    nginx.exe                     8944 Console                    1      5,128 K
    nginx.exe                     6712 Console                    1      5,556 K

    7)nginx常用命令

    nginx -s stop 强制关闭 
    nginx -s quit 安全关闭 
    nginx -s reload 改变配置文件的时候,重启nginx工作进程,来时配置文件生效 
    nginx -s reopen 打开日志文件

    8)其它
      可以通过配置文件开启多个nginx工作进程,但同时只有其中一个nginx工作进程在工作,其他的阻塞等待。
      一个nginx工作进程最多同时可以处理1024个连接。
      nginx中需要共享内存的cache或者模块无法在windows下正常使用。
      不过,nginx官方正在改进,将来nginx会以服务的方式运行,使用 I/O completion ports代替select方法,使多个工作进程能并发工作。
      要使用nginx配合php-cgi使用,需要修改环境变量,否则,php-cgi运行一定次数就推出,需要重启,设置PHP_FCGI_MAX_REQUESTS这个变量为0即可。

      以上在win7上通过。 

     8)nginx以windows服务形式启动

      1.下载微软两个工具:

        instsrv.exe srvay.exe

      2.执行命令:

        instsrv Nginxc:/nginx/srvany.exe

      3.配置Nginx的运行参数

      可以直接将配置导入到注册表

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NGINX/Parameters]
    "Application"="C://nginx//nginx.exe"
    "AppParameters"=""
    "AppDirectory"="C://nginx//"

      注意:windows 下的Nginx 内置的module 很多没有,用Nginx -V 命令查看。

    9)Nginx下部署mono+asp.net环境

      1、从Mono for Windows中提取FastCGI-Mono-Server

      2、Nginx nginx.conf 的配置: 

    worker_processes  1;
    error_log  logs/error-debug.log info;

    events {
        worker_connections  1024;
    }

    http {
        include       mime.types;
        default_type   text/plain;
        sendfile        on;

        keepalive_timeout  65;
        index  index.html index.htm;

        server {
            listen       80;
            server_name yourdomain.com;
            index index.aspx default.aspx;

            location / {
              root   D:www/yourwebapp;

              fastcgi_pass   127.0.0.1:8000;
              fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
              include       fastcgi_params;
           }
        }
    }

       将上面的 FastCGI-Mono-Server 提取出来,所有文件全部注册到 GAC(否则 Web 应用会找不到他们,当然你也可以直接放到 webapp/bin),然后解压到某个文件夹,这里假设为 D:/FastCGI-Mono-Server。

      之后我们就可以按下列命令运行 FastCGI:
      fastcgi-mono-server2 /socket=tcp:127.0.0.1:8000 /root="D:wwwyourwebapp" /applications=yourdomain.com:/:. /multiplex=True

      最后执行运行 Nginx 服务器,我们的 ASP.Net 程序就能脱离 IIS。

  • 相关阅读:
    银联测试
    mysql 往表中某个字段的字符串后追加字符串
    jsp通过js往后端传文字时乱码问题的解决
    artTemplate 如何遍历数据
    Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [kstore_goods_platform,kstore_goods,kstore_custom] are excluded from annotation processi
    递归方式实现二分查找
    递归与二分查找
    python内置函数
    函数的四种传参方式
    python基础(四)
  • 原文地址:https://www.cnblogs.com/yyy116008/p/7079884.html
Copyright © 2011-2022 走看看