我正在尝试在Pi Model 3B+上使用NGINX服务器运行一个flask应用程序。/home/pi/api/api.py目录中的代码。我正在关注这篇文章https://www.raspberrypi-spy.co.uk/2018/12/running-flask-under-nginx-raspberry-pi/
我的WSGI ini文件
[uwsgi]
chdir = /home/pi/api
module = api:app
master = true
processes = 1
threads = 2
uid = www-data
gid = www-data
socket = /tmp/api.sock
chmod-socket = 664
vacuum = true删除默认值后我的uwsgi代理
sudo nano /etc/nginx/sites-available/api_proxyserver {
listen 80;
server_name localhost;
location / { try_files $uri @app; }
location @app {
include uwsgi_params;
uwsgi_pass unix:/tmp/api.sock;
}
}我的uwsgi.service文件
[Unit]
Description=uWSGI Service
After=network.target
[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/pi/flasktest/
ExecStart=/usr/local/bin/uwsgi --ini /home/pi/api/uwsgi.ini
[Install]
WantedBy=multi-user.target但是当我使用以下命令启动服务器
sudo systemctl status uwsgi.service我得到了这个错误
uwsgi.service - uWSGI Service
Loaded: loaded (/etc/systemd/system/uwsgi.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 02:58:37 IST; 51min ago
Main PID: 464 (uwsgi)
Tasks: 3 (limit: 2319)
Memory: 13.5M
CGroup: /system.slice/uwsgi.service
├─464 /usr/local/bin/uwsgi --ini /home/pi/api/uwsgi.ini
└─728 /usr/local/bin/uwsgi --ini /home/pi/api/uwsgi.ini
Apr 22 03:40:32 websync uwsgi[464]: File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
Apr 22 03:40:32 websync uwsgi[464]: File "<frozen importlib._bootstrap_external>", line 724, in exec_module
Apr 22 03:40:32 websync uwsgi[464]: File "<frozen importlib._bootstrap_external>", line 859, in get_code
Apr 22 03:40:32 websync uwsgi[464]: File "<frozen importlib._bootstrap_external>", line 916, in get_data
Apr 22 03:40:32 websync uwsgi[464]: PermissionError: [Errno 13] Permission denied: './api.py'
Apr 22 03:40:32 websync uwsgi[464]: unable to load app 0 (mountpoint='') (callable not found or import error)
Apr 22 03:40:32 websync uwsgi[464]: *** no app loaded. going in full dynamic mode ***
Apr 22 03:40:32 websync uwsgi[464]: *** uWSGI is running in multiple interpreter mode ***
Apr 22 03:40:32 websync uwsgi[464]: gracefully (RE)spawned uWSGI master process (pid: 464)
Apr 22 03:40:32 websync uwsgi[464]: spawned uWSGI worker 1 (pid: 728, cores: 2)请帮帮忙。
发布于 2020-04-22 06:33:57
该错误表示UWSGI没有访问文件api.py的权限。在您的配置中,UWSGI使用用户和组www-data运行。检查该用户或组是否至少对该文件具有读取权限。
顺便说一句,除非你需要nginx的一些功能(证书处理,多个并发连接,静态文件的快速响应时间,或者其他一些功能),否则你可以去掉nginx和UWSGI,这样就不用担心了。如果这将是一个面向公众的服务器,那么是的,继续你的路线。但如果这是带有简单web界面的私人设备,请消除复杂性。
https://stackoverflow.com/questions/61354262
复制相似问题