访问gunicorn flask服务器而不指定端口名

时间:2017-10-09 10:49:26

标签: python nginx networking flask gunicorn

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

  

$ 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,我使用动态IP地址的免费动态DNS服务。

1 个答案:

答案 0 :(得分:2)

这是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

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