Windows环境使用nginx反向代理Node.js教程

作用

最近一直在埋头苦学Node.js,正好手头有个项目需要上线,之前所有项目都是用Apache部署的,接触Node.js后调试都是带端口号的,例如http://localhost:8080 ,但是在生产环境,总不能让用户也访问带端口的地址吧?这个时候就需要用nginx来做端口转发。

安装

官网下载

下载后解压到方便操作的地方,如C:/即可,以下操作以C:/nginx为目录进行演示。

CMD键入:

cd C:/nginx

有两种启动命令,第一种无论是否成功启动都是一闪而过,优点是不会挂起进程,第二种会挂起,但是会抛出错误,在配置阶段方便调试。

start nginx  //第一种启动命令

nginx.exe//第二种启动命令

接着测试服务是否成功启动:

http://127.0.0.1

如果出现nginx的默认网页就算安装成功。测试完了先关闭服务:

nginx.exe -s quit

配置

重点来了,网上搜的博文不利于初学者,这也是著此文的目的所在。我们需要修改nginx的配置文件,位于:

C:\nginx\conf\nginx.conf

编辑该文件,我们的目标是把当前的80端口转发到8080端口。
修改第35行开始的配置为:

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host  $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_set_header Connection "";
    proxy_pass      http://127.0.0.1:8080;
    }

保存文件,再次开启nginx服务。至此,输入localhost便能访问之前8080端口的项目,希望对大家有所帮助。