Có thể vô hiệu hóa các trang lỗi tùy chỉnh của nginx không - nếu tôi có thể gọi chúng - để hiển thị các trang ngoại lệ của khung công tác của tôi?nginx + uwsgi + bình - vô hiệu hóa các trang lỗi tùy chỉnh
tôi có thể không thực sự nhìn thấy công cụ gỡ lỗi Werkzeug tôi render trong html ...
CẬP NHẬT
OK, tôi đã làm đơn bình rất rất đơn giản để làm việc và tôi sẽ đăng các bit:
/home/my_user/.virtualenvs/nginx-test/etc/nginx.conf
worker_processes 1;
events { worker_connections 1024; }
http {
server {
listen 5000;
server_name localhost;
access_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/access.log;
error_log /home/my_user/.virtualenvs/nginx-test/lib/nginx/error.log;
location/{
include uwsgi_params;
uwsgi_pass unix:/tmp/uwsgi.sock;
}
}
}
/home/my_user/dev/nginx_test/___init___.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
raise Exception()
if __name__ == '__main__':
app.run('0.0.0.0', debug=True)
PYTHONPATH biến môi trường:
$ echo $PYTHONPATH
/home/my_user/dev/
Làm thế nào tôi chạy uwsgi:
$ uwsgi -s /tmp/uwsgi.sock --module nginx_test --callable app
Làm thế nào tôi chạy nginx :
$ nginx -c ~/.virtualenvs/nginx-test/etc/nginx.conf -p ~/.virtualenvs/nginx-test/lib/nginx/
Nếu tôi nhấn trang gốc:
Nếu tôi chạy nginx bằng tay như:
python /home/my_user/dev/nginx_test/___init___.py
tôi sẽ thấy thay vào đó, và những gì tôi muốn xem:
Tất nhiên tôi đã đảm bảo rằng nó sẽ hoạt động khi tôi không tăng cũ sự lừa dối, nhưng đã trả về 'Hello World' ví dụ về hàm index() của tôi.
Điều này được gọi là các trang lỗi tùy chỉnh trong .NET. Tôi muốn vô hiệu hóa điều này và để nginx/uwsgi chuyển html được tạo bởi trình gỡ lỗi trực tiếp tới trình duyệt thay vì điều lỗi máy chủ nội bộ.
CẬP NHẬT 2
Bây giờ nếu tôi thay đổi ứng dụng bình của tôi để kích hoạt chế độ gỡ lỗi bằng cách:
/home/my_user/dev/nginx_test/___init___.py
from flask import Flask
app = Flask(__name__)
app.config.update(DEBUG=True)
@app.route('/')
def index():
raise Exception()
if __name__ == '__main__':
app.run('0.0.0.0', debug=True)
Sau đó, tôi nhận được lỗi 502.
Nhưng nếu tôi thay vì tăng Ngoại lệ:
/home/my_user/dev/nginx_test/___ init___.py
from flask import Flask
app = Flask(__name__)
app.config.update(DEBUG=True)
@app.route('/')
def index():
return 'Hello World'
if __name__ == '__main__':
app.run('0.0.0.0', debug=True)
tôi nhận được 'Hello World' trên trình duyệt của tôi khi tôi nhấn trang (http://localhost:5000).
Sẽ tốt hơn khi nêu rõ câu hỏi mà bạn gặp sự cố với trang lỗi nào. 502 – number5
Cảm ơn đề xuất của bạn, tôi đã thêm rất nhiều thông tin mới hy vọng sẽ giúp tìm ra vấn đề. –