我遇到的问题是,我不能远程访问,除非我使用端口80,我想使用不同的端口。
下面是我使用的NGINX配置。这将在端口80上工作。但是,如果我改变
listen 80;
字符串
至
listen 6000;
型
当从本地机器外部访问时,它不工作。
换句话说,机器上的curl 127.0.0.1:6000可以工作。但是,尝试使用184.169.100.100:6000进行外部访问不起作用。(假装这是我的公共IP地址。)它给了我一个“网站无法到达”在Chrome错误。
我已经检查了安全设置,以确保端口6000是开放的。这是一个AWS EC2示例。
可选的注意事项放在上下文中:总的来说,我想做的是在一台机器上设置两个不同的服务器,每个服务器可以从不同的端口访问,每个服务器都运行自己的一组python worker。作为第一步,我只是想确保我可以更改访问服务器的端口,但是,我甚至还不能这样做,仍然可以从外部访问它。
ubuntu@ip-172-31-9-113:/etc/nginx/conf.d$ cat flask.conf
upstream gunicorn_server {
server localhost:8080 fail_timeout=0;
}
server {
listen 80;
server_name 184.169.100.100;
root /home/ubuntu/www;
client_max_body_size 4G;
keepalive_timeout 5;
proxy_read_timeout 900;
location / {
try_files $uri @app;
}
location @app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_redirect off;
# pass to the upstream gunicorn server mentioned above
proxy_pass http://gunicorn_server;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
型
任何帮助都是感激的。
5条答案
按热度按时间wfypjpf41#
这种情况发生在防火墙上。
ubuntu:如果你的ufw被启用:
字符串
在centos中禁用selinux(不推荐。搜索允许端口的selinux配置)
ve7v8dk22#
6000端口打开了吗?签入站端口规则。然后尝试点击
sudo ufw allow 6000
并检查是否可以使用6000访问。(this问题是旧的,但仍然回答,因为如果有人面临同样的问题,这个答案可能会帮助他们)
vsmadaxz3#
尝试使用此命令:
字符串
5fjcxozz4#
我在macOS上也一样,端口6000不工作,6001可以
7tofc5zh5#
回答我自己的问题:我尝试使用端口6001而不是6000,然后它工作。我可以从外面进入。我不能说为什么,但对于我的特殊情况,6000一定有问题。