CNode

有没有人试过在windows环境下:Nginx反向代理Node.js

SstruCoder发布于12 年前最后回复11 年前13 回复12302 浏览0 收藏

我这边的环境就是windows了: 我的conf文件是这样配置的(主要部分):

upstream mysite.com{
        server 127.0.0.1:3000;
    }
    server {
        listen       0.0.0.0:8080;
        server_name  mysite.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            
            proxy_pass   http://127.0.0.1:3000;
            proxy_redirect off;
            proxy_http_version 1.1;
            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_read_timeout 300s;           
        }
}

当我键入mysite.com时就是出现not found之类的。我在stackoverflow上也找了一下,但是还是没有解决。 所以在这里希望能得到准确的解答。同时也给以后遇到类似于此问题的同学一个解决的方法。:)

查看回复

回复 (13)

J
jeffzhong#1·12 年前

用127.0.0.1:8080就可以访问到了,如果你想用mysite.com:8080访问, 记得在host文件增加一条DNS 127.0.0.1 mysite.com

L
leohxj#2·12 年前
upstream nodejs__upstream2 {
     server 127.0.0.1:3000;
     keepalive 64;
}
server {
     listen 8080;
     server_name localhost;
     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_http_version 1.1;
         proxy_pass         http://nodejs__upstream2;
     }
}

需要nginx -s reload,你确保都执行了吗?

S
struCoder#3·12 年前
引用 leohxj需要nginx s reload,你确保都执行了吗?

@leohxj 恩,是的,这些基本操作我都知道, 但是现在显示的是白屏,是不是环境问题?我为这个问题也纠结了几天了。。 :(

B
bluesky4485#4·12 年前

@struCoder 修改下hosts文件,增加域名和本地ip的一条记录就可以了。

F
front-thinking#5·11 年前

5楼 9楼 正确

D
DevinXian#6·11 年前

etc下hosts文件加一行 ip 域名~~

O
owen-hong#7·11 年前

曾经试过,真的不建议在windows下用nginx,支持性非常差,不知道最新版的nginx是否已经很好兼容windows了,之前部署就没成功过,而且访问非常慢,后面自己就了linux服务器了

P
pathletboy#8·12 年前

你nginx监听的8080,所以你要要键入mysite.com:8080

S
struCoder#9·12 年前
引用 pathletboy你nginx监听的8080,所以你要要键入mysite.com:8080

@pathletboy 恩,是的,我这样试过了,可还是出现了not found 之类的提示。挺郁闷的:(

T
tulayang#10·12 年前

nginx在windows下可是很不怎么样的, 还是用iis吧

S
saionjisekai#11·12 年前
L
leohxj#12·12 年前
引用 leohxj需要nginx s reload,你确保都执行了吗?

@struCoder 你确定端口已经转向了吗?服务器端有输出么

M
mkliu#13·11 年前

用node proxy即可,不需要nginx

参与回复
登录后即可参与回复。登录