我尝试将我的项目部署到 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: online
和static-page-server-8080
在1上运行,但status: errored
。
我尝试设置 ufw,但我什至不确定这是否会造成任何困惑。
所以现在如果我在浏览器中访问我的 IP,我什么也得不到。如果我在最后添加一个端口,我什么也得不到。我应该如何解决这个问题?我应该放弃它并重新尝试吗?
最佳答案
我还建议,作为健全性检查:
- 停止您在
pm2 列表
中看到的所有正在运行的内容。 - 启动直接在端口 8080 上的终端中运行的项目,并尝试从浏览器访问它。
- 这会告诉您是否是您的代码、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/