美文网首页
Nginx简单配置(Windows环境)

Nginx简单配置(Windows环境)

作者: 木鱼大叔 | 来源:发表于2019-05-24 13:38 被阅读0次

    一. 安装Nginx

    将下载后的nginx压缩包解压到某个目录下,比如:D:\program\myplatform\Nginx\nginx-1.10.0,解压后的目录结构为:

    二. 开始配置

    配置目标:能正常运行php脚本程序

    大部分情况下,我们需要修改的配置文件只有一个,那就是nginx.conf,该文件位于conf目录下。具体配置项目为:

    1. server_tokens off;

    出于安全方面的考虑,最好是隐藏nginx版本号信息

    2. listen   8088;

    8088为监听端口,根据需要可以填写其它端口号

    3. server_name  localhost;

    localhost为服务器访问名称,也就是我们在浏览器里输入的那个url地址

    4. charset utf-8;

    字符集编码

    5. 工作目录

    将如下配置

    location / {

        root  html;

        index  index.html index.htm;

    }

    修改为:

    location / {

        root  D:/javapro;

        index  index.php index.html index.htm;

    }

    root 定义了工作空间,也就是我们php项目所在的目录。

    加入index.php是为了让nginx能够识别php脚本,否则,在访问php文件时,会出现直接下载的情况。

    6. 整合php

    将location ~ \.php配置部分的注释全部去掉,最终配置如下:

    location ~ \.php$ {

                root          D:/javapro;

                fastcgi_pass  127.0.0.1:9001;

                fastcgi_index  index.php;

    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

                include        fastcgi_params;

    }

    注意这里面的$document_root变量,它对应的内容就是root参数值,如果我们没有定义root参数或者把root注释掉,在访问php的时候,页面上就会出现No input file specified.提示。

    7. 启动php-cgi

    打开cmd命令窗口,切换到php的安装目录,执行php-cgi -b 127.0.0.1:9000,即可启动php-cgi,启动完成后,cmd窗口切勿关闭,否则php-cgi也会被关掉的。

    特别提醒:只有在开启php-cgi的情况下,nginx才能正常访问php。

    8. 重启nginx

    打开cmd命令窗口,切换到nginx所在目录,执行nginx -s reload即可重启nginx。其它相关nginx相关命令如下:

    启动:start nginx

    停止:nginx -s stop

    退出:nginx -s quit

    三. 碰到的问题

    1. No log handling enabled - turning on stderr logging

    启动php-cgi过程中,如果报出这个错误,请把php.ini配置文件中的extension=php_snmp.dll注释掉。

    2. 端口占用

    Cannot bind/listen socket - [2] No such file or directory.

    Couldn't create FastCGI listen socket on port 127.0.0.1:9000

    启动php-cgi过程中,如果报类似这种错误,就表示9000端口被占用了,此时,我们可以换个端口试试。

    3. 反向代理404 not found

    以反向代理的方式访问php时,出现404 Not Found错误,这种情况,我们需要修改nginx的error_page配置项,如下:

    将原来默认的error_page注释掉

    #error_page  404              /404.html;

    然后,重新定义error_page,如下:

    error_page 404 @proxy;

    @proxy对应的内容为:

    location @proxy {

            proxy_set_header Host $http_host;

            proxy_set_header X-Real-IP $remote_addr;

            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_pass http://127.0.0.1;

    }

    保存后,重启nginx即可解决404 Not Found错误。

    友情提醒:以反向代理的方式访问php时,就不需要配置php-cgi模块了。

    四. 扩展

    如何让nginx支持jsp访问?

    nginx本身是不支持jsp等动态脚本的,但我们可以通过nginx反向代理的方式来支持jsp等动态页面的访问,即把jsp等动态页面的请求,转发给后端的tomcat服务器进行处理,具体配置如下:

    在http下新建一个server虚拟机,内容为:

    server {

            listen      8089;

            server_name  localhost;

            charset utf-8;

            location ~ \.(jsp|action|do)$ {

                proxy_pass  http://127.0.0.1:8080;

            }

            location ~ \.(html|js|css|png|gif)$ { 

                root D:/program/myplatform/Tomcat/webapps/ROOT; 

            }

        }

    重启nginx后,通过http://localhost:8089/index.jsp即可访问到tomcat的欢迎页面。其中,http://127.0.0.1:8080是tomcat服务器的访问地址,proxy_pass将jsp等请求转发到了tomcat服务器的8080端口上,注意配置中的静态资源部分:

    location ~ \.(html|js|css|png|gif)$ { 

            root D:/program/myplatform/Tomcat/webapps/ROOT; 

    }

    如果去掉上面这段配置,通过http://localhost:8089/index.jsp将无法访问到jsp文件中的静态资源,从而造成页面布局错乱等问题。

    同理,也可以通过这种方式来整合php页面的访问,但要事先安装好apache服务器。

    相关文章

      网友评论

          本文标题:Nginx简单配置(Windows环境)

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