centos7.2下使用nginx代理nodejs

前言:最近买了linux的服务器,准备写写node,遇到的各类问题都会总结出来,一来是给自己留个记录,二来也希望能帮助到同样在学习中的小伙伴。

遇到的问题:写完nodejs接口之后,通常是这样访问的,http://127.0.0.1:8888/api/getData

8888(也可以是其他,不和现有的端口冲突即可)端口是在node中express监听的端口。

在真实访问的时候我们肯定是是要把端口号去掉的,那就意味着我们需要使用默认端口,需要用nginx代理到默认端口,我的nginx配置的默认端口是80。

以下是nginx代理的nodejs的代码:

1.打开nginx的配置文件:

我的是放在sites-available下进行管理的。

vim /usr/local/nginx/conf/sites-available/www

如果你的配置文件是在其他地方放着,那么打开自己的配置文件。

**如果你还没有nginx的配置文件,有配置文件的直接浏览下方配置nodejs:

mkdir /usr/local/nginx/conf/sites-available
vi /usr/local/nginx/conf/sites-available/www

输入以下内容:

server
{
    listen       80;
    server_name  localhost; #可以改为你的域名
    index index.html index.htm index.php;
    root  /data0/htdocs/www;
    access_log  /data0/logs/www_access.log;
    #limit_conn   crawler  20;
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
    }
    location ~ .*\.(js|css)?$
    {
        expires      1h;
    }
    #在这里加入nodejs的代理
}

发布sites-available里的www网站

ln -s /usr/local/nginx/conf/sites-available/www

启动nginx

ulimit -SHn 65535
/usr/local/nginx/sbin/nginx

nginx代理nodejs端口:

在配置文件顶部添加

upstream nodejs {
    server 127.0.0.1:8888; #你所在服务器中nodejs程序监听的端口
    keepalive 64;
}

在server下加入配置

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://nodejs;
}

重载nginx

nginx -s reload
如果有问题欢迎在下方留言。







你可能感兴趣的:(nginx,nodejs)