nginx配置可与烧瓶蓝图的子域一起使用

时间:2018-07-16 14:26:28

标签: nginx flask uwsgi digital-ocean

我到处都在寻找,但是没有找到答案

我有一个应用程序,我决定在自己的子域中运行几乎所有蓝图。例如:

  1. admin.domain.com>管理界面
  2. security.domain.com>任何与用户相关的信息,登录退出注册..etc
  3. api.domain.com> api
  4. domain.com和www.domain.com>常规应用

现在我知道我的代码可以正常工作,因为当我使用以下代码进行测试时:

  1. python run.py
  2. flask run
  3. uwsgi --socket 0.0.0.0:5000 --protocol=http -w run:app

它可以很好地达到预期的结果

如果有问题,我正在使用Digital Ocean的ubuntu 16.04。在测试时,我将SERVER_NAME设置为domain.com:5000。但是现在,由于我想在生产环境中运行,因此将其更改为domain.com,但仍然无法正常运行

这是我的文件:

uwsgi.ini

[uwsgi]
module = run:app

master = true
processes = 5

socket = myrpoject.sock
chmod-socket = 660
vacuum = true
die-on-term = true

/ etc / nginx / sites-available / myproject

server {
    listen 80;
    server_name MY_IP domain.com www.domain.com;

    location / {
            include uwsgi_params;
            uwsgi_pass unix:///home/gin/myproject/myproject.sock;
    }

    location ^~ /static/  {
            include  /etc/nginx/mime.types;
            root /home/gin/myproject/app/;
    }

}

/etc/systemd/system/myproject.service

[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=gin
Group=www-data
WorkingDirectory=/home/gin/myproject
Environment="PATH=/home/gin/myproject/venv/bin"
ExecStart=/home/gin/myproject/venv/bin/uwsgi --ini uwsgi.ini --uid gin --gid www-data

[Install]
WantedBy=multi-user.target

最后是没有ns的我的Digitalocean小滴:

Type       Hostname                 Value            TTL (seconds)  
A       security.domain.com     directs to MY_IP        80  
A       admin.domain.com        directs to MY_IP        80  
A       api.domain.com          directs to MY_IP        80  
A       www.domain.com          directs to MY_IP        80 
A       domain.com              directs to MY_IP        80  

我尝试将www设置为CNAME,但并没有真正改变

现在使用以下配置:

  1. www.domain.com和domain.com都可以,一切都按预期运行
  2. 子域根本不起作用,而是重定向到“欢迎使用nginx”页面

0 个答案:

没有答案