騰訊雲服務器centos7.2+nginx(開啓gzip壓縮)+uwsgi+Django+react

由於項目緣由,學習了react,Django,完成react開發項目事後,打包(作好了代碼分割、壓縮)放入Django中,在本地運行速度很快,結果放到服務器中,雖然某些js文件很小(只有一百多kb),可是下載速度很是慢,須要3-6秒,這樣致使頁面加載速度很慢,經過查詢,經過gzip壓縮,可使項目js文件進行進一步壓縮,極大的加快項目運行速度。現將完整的流程分享以下:javascript

1、確保項目在服務器中運行成功(暫不作任何處理):css

  好比我購買騰訊雲服務,在服務器中啓動Django項目,python manage.py runserver 0.0.0.0:80  (騰訊雲服務公網ip會映射到此地址),在本機使用公網ip確保能訪問html

2、在centos中安裝uwsgijava

直接使用如下命令完成安裝:python

pip install uwsgi

1.配置uwsgi:在Django項目的根目錄下,新建兩個文件,uwsgi.ini( 配置文件)和run.log(日誌文件)react

2.在uwsgi.ini配置以下:nginx

  

[uwsgi]
chdir = /home/myweb                                   ----->項目根目錄
module = myweb.wsgi:application                       ----->項目myweb/myweb/wsgi.py
socket = 127.0.0.1:8000                               ----->nginx與uwsgi通訊端口,與nginx配置文件中一直,下面會說
master = true                                         ----->容許主線程存在(true)
processes=4                                           ----->開啓的進程數量(這裏是開啓4個進程)
max-requests=5000                                     ----->最大請求數
daemonize = /home/myweb/run.log                       ----->上面建立的日誌文件
disable-logging = true                                ----->表示不記錄正常信息,只記錄錯誤信息
wsgi-file = /home/myweb/myweb/wsgi.py                 ----->項目myweb/myweb/wsgi.py
pidfile=/home/myweb/uwsgi.pid                         ----->uWSGI運行後自動生成的,裏面記錄了uWSGI的進程號,能夠用來重啓uWSGI
vacuum=true                                           ----->當服務器退出的時候自動清理環境,刪除unix socket文件和pid文件

4.在項目根目錄中運行如下命令進行static文件收集,這個提供ngnix靜態文件c++

python manage.py collectstatic

3.uwsgi.ini操做web

啓動:uwsgi --ini uwsgi.ini
中止:uwsgi --stop uwsgi.pid
重啓:uwsgi --reload uwsgi.pid

3、centos安裝nginxcentos

安裝依賴

1.yum install gcc-c++  
2.yum install pcre pcre-devel
3.yum install zlib zlib-devel
4.yum install openssl openssl--devel

下載nginx

wget http://nginx.org/download/nginx-1.12.0.tar.gz 

解壓縮

tar -zxvf nginx-1.12.0.tar.gz

進入目錄

cd  nginx-1.12.0

安裝

./configure
make
make install

centos默認安裝路徑:/usr/local/nginx

進入此目錄:cd /usr/local/nginx/sbin

輸入命令啓動nginx(測試是否安裝成功):./nginx

若是成功會顯示如下界面:

進行nginx配置

  cd /usr/local/nginx/conf

vi nginx.conf進行編輯

 插入:

    gzip  on;                              ----->啓動gzip壓縮
    gzip_min_length 1k;                    ----->最小壓縮爲1k
    gzip_buffers 4 16k;                    ----->以16k爲單位,按照原始數據大小以16k爲單位的4倍申請內存
    #gzip_http_version 1.0;                ----->識別http協議的版本,早起瀏覽器可能不支持gzip自解壓,用戶會看到亂碼
    gzip_comp_level 4;                     ----->等級1-9 最小的壓縮最快 可是消耗cpu
    gzip_types text/plain application/javascript application/x-javascript text/css text/javascript  image/jpeg image/gif image/png;  ------>壓縮格式,這個很重要,只有對應格式才壓縮
    gzip_disable "MSIE [1-6]\.";           ----->指定哪些不須要gzip壓縮的瀏覽器
    gzip_proxied any;                      ------>nginx作爲反向代理時啓用,off(關閉全部代理結果的數據的壓縮),expired(啓用壓縮,若是header頭中包括"Expires"頭信息),no-cache(啓用壓縮,header頭中包含"Cache-Control:no-cache"),no-store(啓用壓縮,header頭中包含"Cache-Control:no-store"),private(啓用壓縮,header頭中包含"Cache-Control:private"),no_last_modefied(啓用壓縮,header頭中不包含"Last-Modified"),no_etag(啓用壓縮,若是header頭中不包含"Etag"頭信息),auth(啓用壓縮,若是header頭中包含"Authorization"頭信息)
    gzip_vary on;                          ------>啓用應答頭"Vary: Accept-Encoding"

繼續編輯在server裏編輯

charset utf-8;                                  ----->設置字符編碼

        location / {
           uwsgi_pass 127.0.0.1:8000;           ----->對應uwsgi配置的端口   
           include /usr/local/nginx/conf/uwsgi_params;      ------conf目錄下  
        }
        location /static{                      ----->靜態文件
           alias /home/myweb/static;
        }

nginx操做:

啓動:在sbin目錄    ./nginx -c /usr/local/nginx/conf/nginx.conf
中止:查看進程  ps -ef|grep nginx   殺死進程  kill -TERM 2132
重啓:./nginx -s reload

四:啓動uwsgi、nginx服務,項目就運行成功了,以下:

 

 

參考文章:

  https://blog.csdn.net/xing851483876/article/details/84306953

  http://www.javashuo.com/article/p-huxiyzib-cc.html

       https://www.jianshu.com/p/cc61d74104e5

       http://www.javashuo.com/article/p-ujikivhs-y.html

相關文章
相關標籤/搜索