Ubuntu 16.04 Nginx 1.12.0 MongoDB 3.4 Python 3
sudo apt-get install vsftpd
啓動 vsftpd 服務:html
sudo service vsftpd restart
Windows 安裝 FileZilla,輸入主機、用戶名、密碼、端口,而後鏈接。python
更改 nginx
安裝源,以保證安裝的是最新穩定版。:nginx
vim /etc/apt/sources.list
添加:ubuntu
deb http://nginx.org/packages/ubuntu/ xenial nginx deb-src http://nginx.org/packages/ubuntu/ xenial nginx
更新源,不然會報錯vim
sudo apt-get update
安裝 Nginx:瀏覽器
sudo apt-get install nginx
啓動 Nginx 測試:bash
sudo /etc/init.d/nginx start # 或者 service nginx start
此時打開瀏覽器訪問你的服務器,就能看到經典的 Nginx 歡迎頁面!
參看:Nginx Install服務器
安裝 Python3 環境的 pip
app
sudo apt-get install python3-pip
安裝建立獨立的Python 環境所需的 virtualenv
ssh
pip install virtualenv
在指定路徑下建立 Python3 虛擬環境:
virtualenv -p /usr/bin/python3 py3env
啓動虛擬環境:
source py3env/bin/activate
退出虛擬環境:
deactivate
配置複雜,用 Gunicorn 替代。
進入虛擬Python 環境:
pip3 install uwsgi
使用 Gunicorn 配置更簡單。在虛擬環境下,pip install gunicorn
,安裝 Gunicorn,新建配置文件 deploy_config.py
,內容以下:
import os bind='127.0.0.1:8080' #綁定的端口 workers=4 #worker數量 backlog=2048 debug=True proc_name='gunicorn.pid' pidfile='/var/log/gunicorn/debug.log' loglevel='debug'
啓動 Gunicorn:
gunicorn -c deploy_config.py myapp:app
myapp
是入口Python文件名,app
是Flask 實例名。若是輸出 worker 相關信息,代表啓動成功。
修改 /etc/nginx/sites-available/
下的defalut
文件爲以下內容:
server { listen 80; server_name example.com; # 這是HOST機器的外部域名,用IP地址也行 location / { proxy_pass http://127.0.0.1:8080; # 這裏是指向 gunicorn host 的服務地址 proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
配置完了以後軟連接一份到 /etc/nginx/sites-enabled/defalut
下面
ln -s /etc/nginx/sites-available/defalut /etc/nginx/sites-enabled/defalut
注:也能夠刪除default
文件的,新建本身的配置文件,並創建軟連接。
安裝:
apt-get install python-setuptools easy_install supervisor echo_supervisord_conf > /etc/supervisord.conf
配置文件中添加:
[program:myapp] command=/home/www/myapp/py3env/bin/gunicorn -c /home/www/myapp/deploy_config.py myapp:app autorstart=true directory=/home/www/myapp autorestart=true startsecs=10 startretries=20 [program:nginx] command=/usr/sbin/nginx startsecs=0 stopwaitsecs=0 autostart=true autorestart=true stdout_logfile=/var/deploy/log/nginx.log stderr_logfile=/var/deploy/log/nginx.err
如出現端口占用的錯誤,則:
sudo unlink /tmp/supervisor.sock sudo unlink /var/run/supervisor.sock
啓動 Supervisord:
supervisord -c /etc/supervisord.conf
關閉 supervisor:
supervisorctl shutdown
supervisorctl reload
命令 | 功能 | 實例 |
---|---|---|
cp |
複製文件或目錄 | cp file1 file2 |
監聽端口:
lsof -i tcp | grep LISTEN ****************************** sshd 837 root 3u IPv4 8888 0t0 TCP *:ssh (LISTEN) vsftpd 4463 root 3u IPv4 19989 0t0 TCP *:ftp (LISTEN)
tree /etc/nginx/
/etc/nginx/ ├── conf.d ├── fastcgi_params ├── koi-utf ├── koi-win ├── mime.types ├── naxsi_core.rules ├── naxsi.rules ├── naxsi-ui.conf.1.4.1 ├── nginx.conf ├── proxy_params ├── scgi_params ├── sites-available │ └── default ├── sites-enabled │ └── default -> /etc/nginx/sites-available/default ├── uwsgi_params └── win-utf
文件夾 sites-enabled
中的文件爲 sites-available
文件夾中文件的硬連接。
配置文件從 sites-avalidable中加載,默認配置文件爲其中的
default` 文件。
nginx.conf
爲主配置文件。
uwsgi_parems
是與 Python 相關的文件。
fastcgi_parms
是與 PHP 相關的文件。
nginx 的默認網站目錄 /usr/share/nginx/html
。
經常使用命令:
nginx -s stop 快速關閉 nginx nginx -s quit 優雅的關閉 nginx nginx -s reload 從新加載配置 nginx -s reopen 從新打開日誌文件
獲取全部運行中的 nginx 進程列表:
ps -ax | grep nginx
若 nginx 主進程 pid
爲 1628
,則可用kill
命令發送 QUIT
信號,關閉此進程:
kill -s QUIT 進程ID