設定 cad4 server。設定 nginx uWSGI cmsimde ufw。
導入所需模組
由於pip、uwsgi 和 python plugin 已經安裝了,所以就不裝了。
安裝 cmsimde 所需要的模組(flask、flask_cors、bs4、lxml)
sudo pip3 install flask flask_cors bs4 lxml
建立 key and crt
練習時建立自己認證的 key 和 crt 。如果實際要架設 server 就需要第三方任成的 key。 key 和 crt 放在 /home/s40723150 目錄下
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt
設定 nginx
導入 CMSIMDE 模組
設定 proxy
git config --global http.proxy http://[2001:288:6004:17::69]:3128
新建 cad4_site 目錄存放 cmsimde 的檔案
mkdir cad4_site cd cad4_site git clone https://github.com/mdecourse/cmsimde.git
將 up_dir 目錄下的資料複製一份到 cad4_site目錄,為了讓之後啟動網站時讀取資料的配置。
cp -r /home/s40723150/cad4_site/cmsimde/up_dir/* /home/s40723150/cad4_site
設定 nginx 將 /etc/nginx/nginx.conf 裡面的讀取目錄 sites-enabled 替換成 sites-available (第62行)。* 則是讀取到 default ,因為 sites-available 目錄下只有 default 這個檔案。
cd /etc/nginx sudo vi nginx.conf
nginx.conf (line: 62) 內容:
include /etc/nginx/sites-available/*
修改 sites-available 裡的設定,將 root 的讀取目錄換到 /home/s40723150/cad4_site 。
cd /etc/nginx/sites-available sudo vi default
sites-available/default 內容:
#root /var/www/html root /home/s40723150/cad4_site;
重啟 nginx
sudo /etc/init.d/nginx restart
導入動態網站
sudo vi /etc/nginx/sites-available/default
加入 port 9443 的設定,設定內如下:
server {
listen 9443 ssl;
listen [::]:9443 ssl;
# 指定 static 所在位置
location /static {
alias /home/s40723150/cad4_site/cmsimde/static/;
}
location / {
# 導入 uwsgi_params 設定參數
include uwsgi_params;
# 根目錄設為近端的 8080 port
uwsgi_pass 127.0.0.1:8080;
}
ssl_certificate /home/s40723150/localhost.crt;
ssl_certificate_key /home/s40723150/localhost.key;
#ssl_certificate /etc/letsencrypt/live/test.kmol.info/fullchain.pem;
#ssl_certificate_key /etc/letsencrypt/live/test.kmol.info/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
ssl_prefer_server_ciphers on;
try_files $uri $uri/ =404;
}
在 port 80 後面插入一段 port 88 的設定。
加設 port 88 (sites-available/default):
server {
listen 80 default server;
listen [::]:80 default_server;
listen 88 default_server;
listen [::]:88 Idefault_server;
在 nginx (9443) 設定中, 導入 uwsgi_params,其網頁根目錄的資料可以由 uwsgi 網站程式提供。
因為 uwsgi 無 SSL 設置, 因此當內部動態網站以 localhost:8080 將資料送交 Nginx (9443) 之後,可以由 Nginx 提供聯外的 SSL 服務。
開啟 uwsgi 功能
cd /home/s40723150/cad4_site sudo vi init.py 確認 CMSiMDE 中 init.py 設定 uwsgi = True, 表示動態網站系統要以 uwsgi 模式啟動
uwsgi = True 設定 uwsgi.ini
在 /home/s40723150 新建 uwsgi_ini 目錄,專門存放 uwsgi 的設定。
mkdir uwsgi_ini sudo vi uwsgi.ini
uwsgi.ini 的設定內容如下:
[uwsgi] socket = :8080 uid = s40723150 gid = s40723150 plugins-dir = /usr/lib/uwsgi/plugins/ plugin = python3 master = true process = 4 threads = 2 chdir = /home/s40723150/cad4_site/cmsimde wsgi-file = /home/s40723150/cad4_site/cmsimde/wsgi.py
重啟 nginx
sudo /etc/init.d/nginx restart
重新啟動 Nginx 並利用 uwsgi 指令測試 手動啟動 uwsgi 主機的指令︰
/usr/bin/uwsgi --emperor /home/s40723150/uwsgi_ini
此時可以測試是否順利連上http://[2001:288:6004:17:2020:cad:0:4]:80、 http://[2001:288:6004:17:2020:cad:0:4]:88 和 https://[2001:288:6004:17:2020:cad:0:4]:9443。
port 80 和 88 可以連上,port 9443 在啟動後有些問題就先跳過,先設定防火牆。
防火牆設定 (ufw)
以 root 身分進行 ufw 設定,將22 80 9443 一起設定。設定完後可以使用 ufw status 查看防火牆設定。
sudo -s ufw status ufw allow from 2001:288:6004:17::/32 to any port 22 ufw deny 22 ufw allow from 2001:288:6004:17::/32 to any port 80 ufw deny 80 ufw allow from 2001:288:6004:17::/32 to any port 9443 ufw deny 9443 ufw enable
exit 退出 root 模式:
沒有留言:
張貼留言