代码之家  ›  专栏  ›  技术社区  ›  Hello World

部署节点js express应用程序-cent os

  •  0
  • Hello World  · 技术社区  · 8 年前

    我正在尝试在GoDaddy VPS主机上部署一个node js应用程序。

    起动 服务器正在使用 pm2 下列的 This Tutorial

    我的服务器正在端口上运行 3021 我想在左舷跑 80

    我已完成步骤,直到 pm2

    我已经安装了Nginx,然后运行这个命令 sudo vi /etc/nginx/sites-available/default

    [ Error writing /etc/nginx/sites-available/default: No such file or directory ]

    这是我的nginx配置:

    user nginx;
    worker_processes auto;
    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;
    
    
    include /usr/share/nginx/modules/*.conf;
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
    
        access_log  /var/log/nginx/access.log  main;
    
        sendfile            on;
        tcp_nopush          on;
        tcp_nodelay         on;
        keepalive_timeout   65;
        types_hash_max_size 2048;
    
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
    
    
        include /etc/nginx/conf.d/*.conf;
    }
    
    2 回复  |  直到 8 年前
        1
  •  1
  •   Sebastian Kaczmarek    7 年前

    pm2 sudo vi /etc/nginx/sites-available/default 可能不起作用,因为 sites-available 目录不存在。请记住 可用站点 sites-enabled /etc/nginx/nginx.conf

    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  yourapp.com www.yourapp.com;
        root         /var/www/html; # <- for you it can be any other dir
        index        index.html index.htm # <- or any other file which is your main file
    
        # You want to proxy_pass the traffic on any route to your internal app
        location ~ /(.*) { # ~ means that you are using regex
            proxy_pass http://localhost:3021/$1$is_args$args; # <- proxy_pass to your internal app
            proxy_redirect off;
            proxy_read_timeout 60s;
            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;
        }
    }
    

    把上面的配置放到 /etc/nginx公司/nginx.conf文件 里面 http 阻止。

    nginx -t
    

    如果成功,nginx配置就完成了。

    还没结束呢。还有一件事要做-在防火墙中打开端口80,如下所示:

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload
    

    您可以检查它是否打开:

    firewall-cmd --list-ports
    

    打开浏览器 http://yourapp.com/ 看看能不能用。

    请记住关注nginx和应用程序的日志:

    tail -f /var/logs/nginx/access.log # or error.log to see nginx access/error log
    pm2 logs # to see your app logs
    

        2
  •  1
  •   Samuel Philipp    7 年前

    尝试使用 /etc/nginx/conf.d/default.conf 而不是 /etc/nginx/sites-available/default

    如果你想用 /etc/nginx/可用站点/默认 你应该加上 include /etc/nginx/sites-available/*; 给你的nginx.conf文件.

    http {
        ...
        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-available/*;
    }
    
    推荐文章