美文网首页@IT·互联网程序员移动开发
怎样在windows上搭建nginx服务器

怎样在windows上搭建nginx服务器

作者: Simon_Zhang | 来源:发表于2017-05-24 14:24 被阅读1449次

    因为要在自己电脑(windows)上搭建一个流媒体服务器,使用nginx-rtmt搭建。所以得先在本地搭建nginx服务。 参考了nginx的官方文档,整理了一些遇到的问题,顺便翻译了一下nginx的windows版本的安装文档。
    原文链接: http://nginx.org/en/docs/windows.html

    Windows版本的nginx用的是 win32的api(不是使用Cygwin中间层). 目前只使用了 select()连接处理方法。 所以不用期望高性能和高扩展性。由于这个原因和一些已知问题,windows版本的nginx是考虑作为一个beta版本。 到现在为止,它提供了几乎和UNIX版本同样的功能,除了XSLT过滤器,图片过滤器,GeoIP模块和嵌入式Perl语言。

    安装windows版本的nginx,首先下载nginx最新的版本(1.13.0),因为这个主分支的nginx版本修复了所有的已知问题。然后解压这个文件,然后切换到nginx-1.13.0目录下, 然后运行 nginx.ext(双击),例下:

    cd c:\
    unzip nginx-1.13.0.zip
    cd nginx-1.13.0
    start nginx
    

    运行 tasklist命令,来查看nginx 进程

    C:\nginx-1.13.0>tasklist /fi "imagename eq nginx.exe"
    
    Image Name           PID Session Name     Session#    Mem Usage
    =============== ======== ============== ========== ============
    nginx.exe            652 Console                 0      2 780 K
    nginx.exe           1332 Console                 0      3 112 K
    

    这两个进程中一个是主进程,一个是工作进程。如果nginx没有启动,可以到logs/error.log下面去找原因。 如果这log 文件没有生成,问题的原因可能是报告在window的Event log里面了。 如果输入命令出现的是一个错误页面,同样的去logs/error.log下面去找原因。

    在我的电脑运行nginx.exe,然后在命令行输入tasklist 命令报错,我在logs/error.log下面找到这个日志。 这表示启动服务器时绑定80端口报错。

    2017/05/24 10:24:15 [emerg] 7008#13824: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

    解决方案是:修改绑定的端口,找到conf/nginx.conf文件修改绑定的端口。

     server {
            listen       80; ///修改这个端口为8087,这个端口可以任意指定,只要没有被绑定过。
            server_name  localhost;
    
            #charset koi8-r;
    
            #access_log  logs/host.access.log  main;
    
            location / {
                root   html;
                index  index.html index.htm;
            }
            ....
    

    然后重新运行nginx.exe,在浏览器输入 http://localhost:8087(8087为你刚才指定的端口),出现这个页面表示你本地的nginx服务安装成功了。

    微信截图_20170524141353.png

    windows版本的nginx用当前运行目录作为默认的配置的文件的前缀。例如上面的那个例子: 前缀为*C:\nginx-1.13.0* 。配置文件中的路径必须用UNIX风格的斜杠指定。

    access_log   logs/site.log;
    root         C:/web/html;
    

    windows版本的nginx是作为一个标准的控制台应用运行的(不是一个服务)。他们用下面这些命令去管理:

    nginx -s stop   快速关闭
    nginx -s quit   正常关闭
    nginx -s 修改配置文件后,重新打开一个新的工作进程并正常关闭之前的工作
    nginx -s reopen 重新打开log文件
    

    已知问题

    • 虽然可以同时启动多个工作进程,但是只有一个工作进程在真正处理所有的工作。
    • 一个工作进程不能同时处理超过1024个连接
    • 不支持UDP代理功能

    未来可能的改进

    • 作为一个服务运行
    • 使用新完成的的I/O接口作为连接进程方法
    • 一个工作进程里面使用多个线程

    相关文章

      网友评论

        本文标题:怎样在windows上搭建nginx服务器

        本文链接:https://www.haomeiwen.com/subject/hpfoxxtx.html