Rumah > Soal Jawab > teks badan
[Tambahan] Mengenai uwsgi_params:
Inilah yang dikatakan laman web rasmi:
Konfigurasikan nginx untuk tapak anda
Anda memerlukan fail uwsgi_params, yang tersedia dalam direktori nginx pengedaran uWSGI, atau daripada https://github.com/nginx/nginx/blob/master/conf/uwsgi_params
Salin ke dalam direktori projek anda sebentar lagi kami akan memberitahu nginx untuk merujuknya.
[Teks Asal]
Apabila menggunakan uwsgi+nginx+django mengikut dokumen ini http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html, gabungan uwsgi dan django atau python tulen boleh menghasilkan keputusan yang betul, dan ia adalah dipasang nginx
之后也能在浏览器刷新看到Welcome to nginx!
.
Kemudian saya mencipta fail konfigurasi nginx di bawah folder projek django:
# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 8000;
# the domain name it will serve for
server_name 192.168.33.10; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /home/vagrant/mysite/mysite/media; # your Django project's media files - amend as required
}
location /static {
alias /home/vagrant/mysite/mysite/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /home/vagrant/mysite/mysite/uwsgi_params; # the uwsgi_params file you installed
}
}
Tetapi sama ada anda cuba menggunakan test.py terus untuk mengeluarkan hello world, atau memulakan pelayan django, anda masih boleh melihat Welcome to nginx!
, dan satu-satunya laluan yang diikuti oleh IP pelayan ialah ini.
Apabila menggunakan test.py secara langsung, output adalah seperti berikut:
$ uwsgi --socket :8001 --wsgi-file test.py *** Starting uWSGI 2.0.9 (64bit) on [Mon Feb 2 15:54:01 2015] ***
compiled with version: 4.6.3 on 02 February 2015 09:51:05
os: Linux-3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012
nodename: precise64
machine: x86_64
clock source: unix
detected number of CPU cores: 2
current working directory: /home/vagrant/mysite/mysite
detected binary path: /home/vagrant/mysite/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
*** WARNING: you are running uWSGI without its master process manager ***
your processes number limit is 2782
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 TCP address :8001 fd 3
Python version: 2.7.3 (default, Dec 18 2014, 19:25:50) [GCC 4.6.3]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0x1579b10
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 72768 bytes (71 KB) for 1 cores
*** Operational MODE: single process ***
WSGI app 0 (mountpoint='') ready in 0 seconds on interpreter 0x1579b10 pid: 1655 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI worker 1 (and the only) (pid: 1655, cores: 1)
習慣沉默2017-05-16 17:27:22
Selesai masalah. Malah, ia adalah kerana /etc/nginx/sites-enabled/
下面有两个配置文件:default
和我自己配置的mysite_nginx.conf
, nginx menggunakan lalai secara lalai. Hanya padam lalai.
高洛峰2017-05-16 17:27:22
Fail konfigurasi tidak berfungsi sama ada fail konfigurasi nginx telah dibaca dengan betul
高洛峰2017-05-16 17:27:22
Nginx dikonfigurasikan dengan port 8000, anda perlu mengakses 8000 port nginx,
Konfigurasi nginx django anda ialah
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
Jadi memulakan django hendaklah berdasarkan port 8001.
uwsgi_params berada dalam nginx. Ralat laluan konfigurasi. uwsgi_params berada dalam /etc/nginx/uwsgi_params
.
phpcn_u15822017-05-16 17:27:22
Terdapat konflik antara muka Pertama, setiap perkhidmatan hanya mendengar 1 antara muka Menurut pemahaman fail konfigurasi, ia sepatutnya, nginx:8000 django:8001
.
Dalam kes ini, tiada ralat dilaporkan semasa melaksanakan python manage.py runserver localhost:8000, menunjukkan bahawa fail konfigurasi nginx tidak berfungsi. Ia mungkin dimulakan menggunakan port lalai 80. Sila semak senarai antara muka Perintah linux ialah:
netstat -natp |. grep nginx
Jika anda ingin menggunakan fail konfigurasi tersuai untuk bermula, sila nginx -h untuk melihat arahan tertentu, mungkin -p atau -c.
Apabila nginx dikonfigurasikan dengan betul untuk bermula, django juga harus dimulakan menggunakan python manage.py runserver localhost:8001 untuk memastikan ia sepadan dengan reka bentuk fail konfigurasi
高洛峰2017-05-16 17:27:22
Adakah anda membawa nombor port semasa anda melawat? http://192.168.33.10:8000
巴扎黑2017-05-16 17:27:22
Sahkan sama ada fail konfigurasi dihalakan dengan betul, contohnya
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
PHP中文网2017-05-16 17:27:22
Pertama, ingat untuk membawa nombor port.
Kedua, mesej ralat menunjukkan bahawa konfigurasi anda salah. Lihat log ralat.