django - nginx不能應用mysite_nginx.conf中的配置,始終以預設配置啟動
仅有的幸福
仅有的幸福 2017-05-16 17:25:22
0
7
505

[補充]關於uwsgi_params:
官網上面是這麼說的:

Configure nginx for your site

You will need the uwsgi_params file, which is available in the nginx directory of the uWSGI distribution, or from https://github.com/nginx/nginx/blob/master/conf/uwsgi_params
Copy it into your project directory. In a moment we will tell nginx to refer to it.

[原文]
依照這個文件http://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html部署uwsgi+nginx+django的時候,uwsgi和django或純python配合都能出正確結果,安裝了nginxnginx之後也能在瀏覽器刷新看到Welcome to nginx!

然後我把nginx設定檔建立在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
    }
}
但無論是試圖直接用test.py輸出hello world,還是啟動django伺服器,都仍然只能看到Welcome to nginx!

#,伺服器ip後面帶上路徑也是只有這個。

直接用test.py的時候輸出如下:###
$ 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)
仅有的幸福
仅有的幸福

全部回覆(7)
習慣沉默

問題解決了。其實是因為/etc/nginx/sites-enabled/下面有两个配置文件:default和我自己配置的mysite_nginx.conf,nginx預設使用了default。刪掉default就對了。

小葫芦

設定檔沒有起作用,檢查是否正確讀取了 nginx的設定文件,先用個最簡單的demo測試是否設定檔按是否生效

小葫芦

Nginx 設定的是8000端口,你需要存取nginx 的8000端口,

你的nginx django配置的是

 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)
}

所以啟動django應該以8001埠為基準。

uwsgi_params 是在nginx裡面。配置路徑錯誤。 uwsgi_params 在 /etc/nginx/uwsgi_params
.

phpcn_u1582

接口衝突了,首先每個服務只監聽1個接口,按照配置文件的理解應該是,nginx:8000 django:8001
在這種情況下執行python manage.py runserver localhost:8000 沒有報錯,表示nginx設定檔沒有作用。可能使用的還是預設的80埠啟動的,請檢查介面列表,linux指令為:
netstat -natp | grep nginx
如過想使用自訂的設定檔啟動,請nginx -h查看具體指令 大概是-p 或-c.
在正確設定啟動nginx情況下,啟動django也應該是使用python manage.py runserver localhost:8001 保證與設定檔設計相符

小葫芦

你訪問的時候帶上連接埠號碼了嗎? http://192.168.33.10:8000

巴扎黑

確認下設定檔指向是否正確,例如

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
Ty80

首先,記得帶連接埠號碼。

其次,報錯說明你配置錯了。看錯誤日誌吧。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!