【问题标题】:Access gunicorn flask server without specifying port name在不指定端口名称的情况下访问 gunicorn flask 服务器
【发布时间】:2017-10-09 10:49:26
【问题描述】:

我有一个小型的迷你博客烧瓶应用程序。我这样执行这个应用程序:

$ gunicorn gunluk:app -p gunluk.pid -b 0.0.0.0:8000

我可以这样访问它:

http://programlama.tk:8000/

但我想做的是在不指定端口名称的情况下访问站点:

http://programlama.tk

当前ip表规则列表:

$ sudo iptables -nvL

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
   62  7092 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8000
  593 67706 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8080
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:5000
 3631 3641K ACCEPT     all  --  enp1s0 *       0.0.0.0/0            0.0.0.0/0
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:8000

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  655 74798 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
 2790  322K ACCEPT     all  --  *      enp1s0  0.0.0.0/0            0.0.0.0/0

还有路由器界面中的端口转发设置如下:

Interface  Protocol    Input Port  Output Port    Server IP Adress  Name    Status
nas_8_35     TCP       5000-5000    5000-5000   192.168.1.2     5000    Active
nas_8_35     TCP       8080-8080    8080-8080   192.168.1.2     web2    Active
nas_8_35    TCP/UDP    8000-8000    8000-8000   192.169.1.2     8000    Active
nas_8_35    TCP/UDP      80-80        80-80     192.168.1.2     http    Active

我没有静态ip,我用的是免费的动态dns服务,动态ip地址。

【问题讨论】:

    标签: python nginx networking flask gunicorn


    【解决方案1】:

    这是一个nginx 处理的事情。

    server {
    listen 80;  # listen onport 80
    server_name server_domain_or_IP; #requests to this domain or ip
    
    location / {
        include proxy_params;
        proxy_pass http://unix:<fullpath-to-your-project>.sock;
       }
    }
    

    这会将server_name:80 的所有流量反向到您应用的url:port

    您可以为您的Gunicorn 创建一个daemon,以便在系统重新启动时自动运行。

    【讨论】:

    • 我进行了请求的更改。创建一个符号链接sudo ln -s /etc/nginx/sites-available/programlama /etc/nginx/sites-enabled/ 测试nginx $ sudo nginx -t 并重新启动nginx 服务$ sudo service nginx restart 。我停止了 gunicorn,这次像这样执行 gunicorn gunluk:app -p gunluk.pid --bind unix:test.sock -b 0.0.0.0:8000 -w 4 我仍然可以访问仅指定端口号的站点。
    • 你的测试,袜子正在创建吗?您的路径是否正确指向该文件?不指定端口会出现什么错误?
    • 我现在可以访问了,谢谢。这似乎是因为我的浏览器的缓存。
    猜你喜欢
    • 2014-03-17
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多