node.js - 在端口和将 React/Node 项目部署到 digital ocean 方面遇到问题

标签 node.js reactjs deployment digital-ocean

我尝试将我的项目部署到 Digital Ocean。

有一次,当我访问 my_ip:8080 时,我能够看到我的 React 客户端,无论出于何种原因,这是它运行的端口。

我设置了 SSL,然后 cd etc/nginx/sites-enabled 点击 vim 默认值并开始编辑。这是我开始遇到问题的地方,我的 react 项目停止出现的地方,也是我最终陷入困境的地方。

这就是该文件现在的内容

server {

    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;

    listen 80;
    server_name my_website.com;
    rewrite ^/a(.*) https://my_website.com/$1 permanent;

    location / {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}


    root /var/www/client/build;

    index index.html index.htm index.nginx-debian.html;

    server_name my_website.com;
    ssl_certificate /root/my_website.crt;
    ssl_certificate_key /root/my_website.com.key;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';

    location / {

    }

不过,这里显然有些东西不起作用。

如果我执行pm2 list,它会显示index在0上运行,status: onlinestatic-page-server-8080在1上运行,但status: errored

我尝试设置 ufw,但我什至不确定这是否会造成任何困惑。

所以现在如果我在浏览器中访问我的 IP,我什么也得不到。如果我在最后添加一个端口,我什么也得不到。我应该如何解决这个问题?我应该放弃它并重新尝试吗?

最佳答案

阅读文档 here 。对于 SSL,this很有用。

我还建议,作为健全性检查:

  1. 停止您在 pm2 列表 中看到的所有正在运行的内容。
  2. 启动直接在端口 8080 上的终端中运行的项目,并尝试从浏览器访问它。
  3. 这会告诉您是否是您的代码、pm2 有问题,或者您设置 nginx 的方式有问题。

此外,我的配置如下所示。您的本地主机可能不应该被注释掉。

server { server_name www.foo.com foo.com;

location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
 }


listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/foo.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/foo.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

关于node.js - 在端口和将 React/Node 项目部署到 digital ocean 方面遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53678474/

相关文章:

python - 如何在本地部署AWS python Lambda项目?

symfony - 如何在已部署的 SF4 应用程序上处理环境变量

javascript - 如何在js中将isi日期转换为iso

reactjs - 如何在 Typescript 模块 (.tsx) 中导入在 JSX 中定义的现有 React 组件

c# - 如何防止多次启动我的应用程序?

javascript - npm start 停止在 React 项目上工作

reactjs - React.js 中 useEffect 的奇怪行为

node.js - 在模型文件中获取 Mongoose 未定义错误

node.js - 找不到在 heroku Node 命令上部署应用程序

javascript - node js通过jquery表单数据发送post请求报错