ECS服務器Django部署備忘錄

# Python3 installation
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
tar -xzvf Python-3.6.8.tgz
cd Python-3.6.8
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3
make
make install
mv /usr/bin/python /usr/bin/python_old2
ln -s /usr/local/python3/bin/python3 /usr/bin/python

# MySQL installation
wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
yum localinstall mysql80-community-release-el7-1.noarch.rpm
yum repolist enabled | grep "mysql.*-community.*"
yum -y install mysql-community-server mysql-community-devel
## startup
systemctl enable mysqld
systemctl daemon-reload
service mysqld start
## password
grep 'temporary password' /var/log/mysqld.log
mysql -uroot -p
set password = 'Pass1234!';

# Trouble shooting
### zipimport.ZipImportError: can’t decompress data,
yum -y install zlib*
vim Module/Setup 
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz <- remove '#
make && make install
### yum error
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python  -> #!/usr/bin/python2.7 
## Project X Y & Z
X:8081 /var/www/html/X
Y:8082 /var/www/html/Y
Z:8083 /var/www/html/Z

# Django services
vim /usr/lib/systemd/system/X.service:
[Unit] 
Description=gitlabcontroller
[Service] 
PrivateTmp=true
Restart=always 
Type=simple 
### Path and Port
ExecStart=/usr/bin/python /var/www/html/#X#Y#Z#/manage.py runserver 0.0.0.0:#8081#8082#8083
ExecStop=/usr/bin/kill -15 $MAINPID 
[Install] 
WantedBy=multi-user.target

# Nginx installation
### Preparation
cd /etc/yum.repos.d/
vim nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
### Installation:
yum install -y nginx
### Version:
nginx -v
### Grammer check
nginx -t

# Nginx Configuration
Assume address is helloworld.com
vim /etc/nginx/nginx.conf

user  nginx;
worker_processes  4;  ### check number of CPU core
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024; ### max connnection
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;
    upstream X{
        server 127.0.0.1:8081;
    }
    upstream Y{
        server 127.0.0.1:8082;
    }
    upstream Z{
        server 127.0.0.1:8083;
    }
    ### Reverse Proxy to X.helloworld.com
    server {
        listen       443;
        ssl on;
        ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
        ssl_certificate_key /etc/pki/PRIVATEKEY.key;
        server_name  X.helloworld.com;
        charset     utf-8;
        client_max_body_size 75M;
        location / {
            proxy_pass http://X;
            index  index.html index.htm;  
        }
    }
    ### Reverse Proxy to Y.helloworld.com
    server {
        listen       443;
        ssl on;
        ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
        ssl_certificate_key /etc/pki/PRIVATEKEY.key;
        server_name  Y.helloworld.com;
        charset     utf-8;
        client_max_body_size 75M;
        location / {
            proxy_pass http://X;
            index  index.html index.htm;  
        }
    }
    ### Reverse Proxy to Z.helloworld.com
    server {
        listen       443;
        ssl on;
        ssl_certificate /etc/pki/tls/CERTIFICATE.crt;
        ssl_certificate_key /etc/pki/PRIVATEKEY.key;
        server_name  Z.helloworld.com;
        charset     utf-8;
        client_max_body_size 75M; 
        location / {
            proxy_pass http://Z;
            index  index.html index.htm;  
        }
    }   
    include /etc/nginx/conf.d/*.conf;
}

# Command when operation
systemctl status nginx
systemctl enable nginx
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章