配置Nginx的坑及思路

2022-06-26 18:03:14 字數 3605 閱讀 4512

我配置的是django + uwsgi + nginx

說下思路,先進行模組化測試:

django:

django 下 第乙個坑是sql版本低問題,原因用pip安裝不正確,在網上查了下按這個文章重灌下就好了

重新執行提示沒有site-packages

在 [uwsgi]檔案下新增pythonpath = /usr/local/python3/lib/python3.7/site-packages 就可以了

在django目錄下輸入 python manage.py runserver 0.0.0.0:8080 

在瀏覽器內輸入:檢查django是否執行正常。

uwsgi:

在/etc/目錄下新建uwsgi9090.ini,新增如下配置:

1

[uwsgi]

2#socket 為上線使用,http為直接作為伺服器使用。

3 #socket = 0.0.0.0:8080

#ip和埠號可以改

5#專案目錄

6 chdir=/usr/local/python3/bin/outoundmanageemnt

7 module=outoundmanageemnt.wsgi

8#虛擬環境目錄

9 #home = home/ray/mxonline/mxonlineenv

10 master = true

11 processes=4

12 threads=2

13# 下面的引數不一定要加

14 # pidfile=uwsgi.pid uwsgi.pid 和uwsgi.log會在啟動uwsgi時自動生成在專案目錄下。

15 # daemonize=uswgi.log

16 # max-requests=2000

17 # chmod-socket=664

18 # vacuum=true

19 pythonpath = /usr/local/python3/lib/python3.7/site-packages

uwsgi

linux下輸入uwsgi --ini /etc/uwsgi9090.ini

在瀏覽器內輸入:檢查uwsgi是否執行正常。

nginx:

這個坑太多,網上的配置版本也多,我試了好多個,下面配置是在我的環境下可以執行的

### 每個指令必須有分號結束,用#號注釋, 注釋部分為可選項,未注釋的為必須的 ###

# main全域性塊:配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。

#user nginx nginx; #配置使用者或者組,預設為nobody nobody。

worker_processes

1; #允許生成的程序數,預設為1, 最大為cpu核數或者cup核數的兩倍

#制定日誌路徑,級別。這個設定可以放入全域性塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg

#error_log logs/error.log;

#error_log logs/error.log notice;

#error_log logs/error.log info;

#pid logs/nginx.pid; #指定nginx程序執行檔案存放位址

#最大檔案開啟數(連線),可設定為系統優化後的ulimit -hsn的結果

#worker_rlimit_nofile

51200

;#cpu親和力配置,讓不同的程序使用不同的cpu

#worker_cpu_affinity

0001

0010

0100

1000

0001

00100100

1000;

#2、events塊:配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。

events #

3、http塊:可以巢狀多個server(每個server為乙個站點),配置**,快取,日誌定義等絕大多數功能和第三方模組的配置。如檔案引入,mime-type定義,日誌自定義,是否使用sendfile傳輸檔案,連線超時時間,單連線請求數等。

#設定由 fail_timeout 定義的時間段內連線該主機的失敗次數,以此來斷定 fail_timeout 定義的時間段內該主機是否可用。預設情況下這個數值設定為

1。零值的話禁用這個數量的嘗試。設定在指定時間內連線到主機的失敗次數,超過該次數該主機被認為不可用。這裡是在30s內嘗試2次失敗即認為主機不可用!

#基於網域名稱的虛擬主機

server 裡配置

#index index.php index.html index.htm; #設定預設頁 此專案也可以放置的到 location /裡配置

#charset koi8-r;

#access_log logs/host.access.log main;

location /

location /static

#error_page

404 /404

.html;

# redirect server error pages to the

static page /50x.html

#error_page

500502

503504 /50x.html;

location = /50x.html

# proxy the php scripts to apache listening on

127.0.0.1:80

# #location ~\.php$

# pass the php scripts to fastcgi server listening on

127.0.0.1:9000

# 支援php配置模組 #符合php副檔名的請求排程到fcgi server

location ~\.php$

}#每個站點都需要配置乙個server模組,為了方便管理,這裡把每個站點的配置檔案統一放入到./vhost/目錄下,並統一使用 .conf為字尾。

include /usr/local/nginx/conf/vhost/*

.conf;

}

view code

nginx配置埠,啟動埠,做負載,分配靜態檔案在轉給uwsgi啟動的埠,nginx配置完成後,

在專案目錄下遷移靜態檔案python manage.py collectstatic

參考了這兩位前輩很多

最後nginx配置最好把**位址注釋掉,做排查,啟動nginx, /usr/local/webserver/nginx/sbin/nginx

在瀏覽器內輸入:檢查nginx是否執行正常。

再把uwsgi位址注釋去掉,在執行nginx上的伺服器位址。

nginx遇到的配置的坑

坑1 302重定向跳轉問題 第一步以為要在nginx裡面配置,所以裝了more header 設定了proxy set header cookie http cookie more set headers location 302重定向沒問題了,但是出現了第二個請求404頁面,session也寫入了...

nginx配置踩坑記錄

既然為靜態資源檔案 1.測試了該目錄下其他型別檔案可正常訪問,說明路徑沒有錯,2.檢視network及request header,均為發現異常 3.考慮只是對json檔案格式異常,是否為nginx配置問題 於是,檢視nginx配置,確實沒有關於json格式的支援,於是新增上 json 重啟ngin...

Nginx及配置詳解

nginx是lgor sysoev為俄羅斯訪問量第二的rambler.ru站點設計開發的。從2004年發布至今,憑藉開源的力量,已經接近成熟與完善。nginx功能豐富,可作為http伺服器,也可作為反向 伺服器,郵件伺服器。支援fastcgi ssl virtual host url rewrite...