이것을 중복으로 닫으려고 서두르지 마십시오. 온라인에서 검색했지만 여전히 작동시키는 방법을 찾을 수 없습니다.
이것은 내 작업 디렉토리입니다.
/var/www/flaskapp
- myproject.ini
- myproject.py
- 내 프로젝트.sock
- 파이캐시
- 위니프
- wsgi.py
myproject.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "<h1 style='color:blue'>Hello There!</h1>"
if __name__ == "__main__":
app.run(host='0.0.0.0')
wsgi.py
from myproject import app
if __name__ == "__main__":
app.run()
myproject.ini
[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = myproject.sock
chmod-socket = 660
vacuum = true
die-on-term = true
#location of log files
logto = /var/log/uwsgi/%n.log
나는 또한 systemd Unit 파일을 만들었습니다.
/etc/systemd/system/myproject.service
[Unit]
Description=uWSGI instance serve myproject
After=network.target
[Service]
User = john
Group = www-data
WorkingDirectory=/var/www/flaskapp/
Environment="PATH=/var/www/flaskapp/venv/bin"
ExecStart=/var/www/flaskapp/venv/bin/uwsgi --ini myproject.ini
[Install]
WantedBy=multi-user.target
그런 다음
sudo systemctl start myproject
sudo systemctl enable myproject
nginx 구성보다. nginx.conf 변경하지 않고 그대로 두었지만 /etc/nginx/sites-available/myproject를 수정했습니다.
server {
listen 83;
server_name my_external_ip;
location / {
include uwsgi_params;
uwsgi_pass unix:/var/www/flaskapp/flaskapp;
}
}
그리고 명령을 통해 /etc/nginx/sites-enabled에 대한 링크를 생성했습니다.
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
이후: sudo systemctl restart nginx 및 sudo ufw는 "Nginx Full"을 허용합니다.
이제 내가 들어갈 때http://myIP주소:83/기본 nginx 인사말만 보이고 다른 것은 없습니다! 내 생각에는 이것이 나의 Hello There! 내 Python 스크립트로 만들었습니다. 왜 그런지 모르겠어...
이것은 내 로그입니다:
/var/log/nginx/error.log
2018/02/08 22:17:51 [error] 2394#2394: *1 connect() to unix:/var/www/flaskapp/venv failed (111: Connection refused) while connecting to upstream, client: 46.146.0.30, server: 92.240.202.184, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/var/www/flaskapp/venv:", host: "my_external_ip:83"
그리고 uwsgi 로그:
current working directory: /var/www/flaskapp
detected binary path: /var/www/flaskapp/venv/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
your processes number limit is 7157
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address myproject.sock fd 3
Python version: 3.5.2 (default, Nov 23 2017, 16:37:01) [GCC 5.4.0 20160609]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xf07550
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 436560 bytes (426 KB) for 5 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0xf07550 pid: 2320 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 2320)
spawned uWSGI worker 1 (pid: 2703, cores: 1)
spawned uWSGI worker 2 (pid: 2704, cores: 1)
spawned uWSGI worker 3 (pid: 2705, cores: 1)
spawned uWSGI worker 4 (pid: 2706, cores: 1)
spawned uWSGI worker 5 (pid: 2707, cores: 1)
누군가 uwsgi를 다시 설치하고 pcre를 설치해야 한다고 말했지만 그래도 성공하지 못했습니다. 이와 관련된 모든 솔루션을 검색하려고 노력했지만 아무 것도 얻지 못했습니다.
문제를 찾아서 해결하도록 도와주세요...
어떤 도움이라도 대단히 감사하겠습니다!
미리 감사드립니다!