[英]Nginx 502 Bad Gateway error on EC2 Instance
我在EC2 Linux实例上配置Nginx服务器时遇到了一些麻烦。 我正在端口3000上运行一个应用程序,并希望使用nginx将其映射到端口80。
这是我的配置文件:
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;
top_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
server_names_hash_bucket_size 128;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
index index.html index.htm
server {
listen 80 default_server;
[::]:80 default_server;
server_name localhost;
include /etc/nginx/default.d/*.conf;
location / {
}
error_page 404 /404.html;
location =/40x.html {
}
error_page 500 502 503 504 /50x.html;
location =/50x.html {
}
}
include /etc/nginx/sites-enabled/default;
这是nginx随附的默认文件,我做了一些细微的更改,最值得注意的是包含了一个名为default的自定义文件,其内容如下:
server {
listen 80;
server_name [my_domain_name];
location / {
proxy_pass http://[my_private_ip]: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;
}
}
用方括号中的项目替换为正确的值。 每当我尝试导航到该网站时,我都会收到502 Bad Gateway nginx / 1.12.1。
我的服务器是运行在端口3000上的node.js服务器。
我已经尝试进行故障排除并阅读了有关网关错误的其他stackoverflow问题,但我找不到解决方案。 谢谢
遵循不同的方法。 允许您的应用程序在端口3000上运行(并同时监听3000)。 在这种情况下,您必须将其打开为
HTTP:// URL:3000
现在,我们只需要将到达端口80的所有请求转发到3000,这可以使用iptables轻松完成:
sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
现在,您应该可以简单地使用网址打开它,而无需端口号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.