[記一個超坑爹的錯誤]uwsgi+nginx安裝步驟與爲什麼uwsgi + nginx配置之後curl可以訪問,瀏覽器不可訪問!!!

想看坑爹錯誤記錄的直接跳到最後一步
想看安裝步驟的跳到第二步
第一步有什麼用我也不知道
能看到這篇的多半已經看了一大摞文檔了我就不多廢話了

一、整一個流程大概這樣

在這裏插入圖片描述

二、步驟

2.1 pip install uwsgi

2.2 創建目錄

在項目根目錄下創建 deploy 目錄來裝 uwsgi 的配置文件和log
在這裏插入圖片描述

2.3 創建 uwsgi_conf.ini 文件

關於socket,很多人都講不明白還囉嗦,這裏指的是與nginx通信用的,端口與項目內配置無關,可以自行設置,並且不可以佔用nginx的 listen 端口,就這樣。

# uwsgi_conf.ini
[uwsgi]
# 選擇內網IP和端口,別搞個啥域名的出來,人家在內網通訊
socket=localhost:8001

# 項目根目錄
chdir=/home/user1/projects/classonline

#項目中wsgi.py文件的相對目錄
wsgi-file=classonline/wsgi.py

# 進程數
processes=2

# 線程數
threads=2

# uwsgi服務器的角色
master=True

# 存放進程編號的文件
pidfile=uwsgi.pid

# 日誌文件,因爲uwsgi可以脫離終端在後臺運行,日誌看不見。以前的runserver是依賴終端的
daemonize=logs/uwsgi.log

# 指定虛擬環境所在目錄,不能填相對目錄
virtualenv=/root/pythonenvs/django22

2.4 安裝 nginx

在安裝 nginx 的時候出現了錯誤,大概是跟 redis 有關,如果出現了錯誤,請安裝好並啓動 redis,如果有且啓動直接跳過,靈活一點謝謝

  1. 安裝redis :apt install redis-server
  2. 啓動redis :service redis-server start
  3. 安裝ngnix :apt install nginx
  4. 配置nginx,/etc/nginx/conf.d/default.conf
upstream classonline {
	# 此處爲uwsgi運行的ip地址和端口號
	server localhost:8001;
}


server {
    # 監聽端口
    listen      80;

    # 服務器域名或者ip地址,填好了 這裏非常重要,只能寫一個,不然雲服務器不通,我也不知道原因,反正就寫着吧
    server_name yejue.com;

    # 編碼
    charset     utf-8;

    # 文件最大上傳大小
    client_max_body_size 75M;

    # 媒體文件 你項目配置的media 絕對路徑
    location /media  {
        alias /home/user1/projects/classonline/media;
    }

    # 靜態文件 你項目配置的static 絕對路徑
    location /static {
        alias /home/user1/projects/classonline/static;
    }

    # 主目錄
    location / {
        uwsgi_pass  classonline;   			# 這裏跟上面一樣就ok
        include    /etc/nginx/uwsgi_params;	#這裏不要亂動
    }
}

  1. 測試是否可用,看清楚命令執行的路徑與name,不是上面那個default
    $ nginx -t -c /etc/nginx/nginx.conf
    在這裏插入圖片描述
  2. 運行 nginx,
$ service nginx start
  1. 可以重新加載配置
$ nginx -s reload -c /etc/nginx/nginx.conf

2.5 運行 uwsgi

# 這裏是指命令行執行,別回頭找我說爲什麼錯了 & 代表後臺運行,不要也沒關係
$ uwsgi uwsgi_conf.ini &
# 停止。uwsgi.pid 是自己生成的,存放了uwsgi的pid信息,看上面的uwsgi配置就知道了
$ uwsgi --stop uwsgi.pid 
# 也可以 ps -ef | grep uwsgi,然後暴力kill
kill -9 pid

三、我的坑爹問題是什麼?

uwsgi + nginx 配置之後curl可以訪問,瀏覽器不可訪問,這讓我一臉懵逼啊,配置了一天一夜沒找到原因,翻了很多文檔也沒有說。

衆所周知 curl 其實就是個可以訪問域名返回網頁的東東,類似於 requests.get

後來發現該死的 Chrome 不知道爲什麼緩存了,看了一天一夜的文檔找不出毛病,換了個瀏覽器,顯示正常!!!!!
如果真要用Chrome訪問,可以嘗試一下清理各種緩存,我捨不得清理,最後用selenium召喚了一個全新的chrome,總算是完結撒花了。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章