2020年8月5日 星期三

Aug 03, 2020 日誌

設定 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]:80http://[2001:288:6004:17:2020:cad:0:4]:88https://[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 模式:

沒有留言:

張貼留言

Oct 19, 2020 日誌

看 neural_network_in_python.pdf 安裝 NVIDIA CUDA 10.1 和 cudnn 7.6.5