安裝配置gunicorn和NGINX的學習筆記

博客寫得差很少了,打算部署到雲上
由於速度的關係,不打算部署在AWS上,因而申請了阿里雲,環境是上篇文章提到的CentOS 7 64位
安裝和配置好Python3和MySQL,又稍微瞭解點web服務器的知識後,打算按這裏的方法進行部署,思路是用gunicorn當應用容器,NGINX當反向代理html

安裝gunicorn

安裝很是簡單,一條pip命令就解決了
測試也很簡單,寫個簡單的Flask英語存成.py文件,放到某個目錄,而後用gunicorn去運行就好
這兩點能夠參考gunicorn官網的quick start這裏
肯定跑起來後,能夠kill掉,須要時再啓動
在gunicorn跑起來後會提示其pid,若是刷掉了,能夠用netstat -plant或什麼別的方式來確認
話說,用netstat -plant能夠看到其進程對應的程序是python2,看起來gunicorn是python2寫的python

安裝NGINX

我很幸運地沒有去官網看文檔,而是直接嘗試了yum install nginx,就安裝成功了(裝python時就裝了很多依賴包)
後來再看官方文檔時,發現他們沒說這種簡單安裝方式,而是麻煩地再去配置Repository page什麼的
我看看本身的版本,是最新的Stable版,攤手nginx

配置NGINX

按照這裏的辦法沒搞定,無奈網上處處搜
這裏知道能夠經過修改nginx.conf文件來完成反向代理的配置,不過文件的位置有點不一樣,我這裏文件在/etc/nginx/目錄,多是版本不一樣致使的
打開發現裏面有行include /etc/nginx/conf.d/*.conf;看上去是會導入其餘配置文件的樣子
那麼咱們去那個文件夾新建一個.conf文件,因而新建了/etc/nginx/conf.d/test.conf文件,其內容以下:git

server {
    listen       8000;
    server_name  flasktest;
    location / {
            proxy_pass http://127.0.0.1:8000;
    }

}

改完後運行service nginx start發現報錯
Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.
因而又處處翻文章,偶然間用netstat -plant查看狀態時發現gunicorn正在監聽8000端口,心中隱隱以爲多是這個致使的,關掉gunicorn試了下發現報錯消失
和朋友溝通發現由於本身底子不紮實,不知道這個知識點:
TCP協議中,不算某進程fork出的子進程,或使用共享socket技術時,同一端口只能有一個進程監聽github

OK,那麼把test.conf中端口改爲7999,運行gunicorn,啓動nginx服務,在瀏覽器裏輸入阿里雲這臺雲服務器對應的公網IP加:7999
終於看到了熟悉的hello world
至此,部署gunicorn和NGINX基本完成,接下來就是部署博客web

相關文章
相關標籤/搜索