You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
郑逸潇 10aa9de227 first commit 3 years ago
10192100406-云计算开题.docx first commit 3 years ago
10192100406-云计算开题.pdf first commit 3 years ago
README.md first commit 3 years ago
nginx.conf first commit 3 years ago
~$192100406-云计算开题.docx first commit 3 years ago

README.md

cloudcomputing

一,克隆储存库 git clone https://github.com/justdjango/django-ecommerce.git 然后按网站上的方法设置虚拟环境,下载requirement,我这里是先安装虚拟环境,再在虚拟环境文件夹内克隆库。

二,更改配置,将django-ecommerce/djecommerce/settings文件夹下的base.py文件中的SECRET_KEY值修改成自己指定的(可以设置为:

SECRET_KEY = 'abcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*(-_=+)'

然后修改production.py文件的ALLOWED_HOSTS和数据库,改为云数据库,公钥和私钥可以随便找一对写上去。

ALLOWED_HOSTS = ['*']

或者*改成外网ip地址or域名,星号表示全都能访问。

将原来的数据库改为云数据库:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #使用mysql作为数据库
        'NAME': 'your database name',
        'USER': 'your mysql user name',
        'PASSWORD':'your mysql user password',
        'HOST':'云数据库ip地址', 
        'PORT':'3306', #mysql默认端口号
    }
}

然后在django-ecommerce文件夹下执行python mange.py collectstatic(若没有文件夹就在django-ecommerce文件夹下创建一个名为static_root的文件夹)

再将djecommerce文件下的wsgi.py更改为

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djecommerce.settings.production')

application = get_wsgi_application()

接下来就是配置nginx和uwsgi

下载nginx和uwsgi

然后配置一个uwsgi的文件,起名叫uwsgi.ini,可以放在django-ecommerce文件夹下新建一个uwsgi_conf文件夹。

里面内容是:

# uwsig使用配置文件启动
[uwsgi]

# 项目所在的根目录
chdir=/root/env/django-ecommerce

# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=%(chdir)/djecommerce/wsgi.py

# 设置日志目录
daemonize=%(chdir)/uwsgi_conf/uwsgi.log

# uWSGI进程号存放
pidfile=%(chdir)/uwsgi_conf/uwsgi.pid

# 支持ip+port模式以及socket file模式
#socket=%(chdir)/uwsgi_conf/uwsgi.sock
socket=127.0.0.1:7777

# 进程个数       
processes = 4

# 每个进程worker数
workers=5

# 指定工作进程的线程数
threads=2
master=True

# 设置虚拟环境路径
virtualenv=/root/env

然后在/etc/nginx下找到nginx.conf文件,修改其中内容为:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    # 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;

    server {
        listen       80;
        server_name  ip; #这里需要改成云主机外网!!!
        charset      utf-8;

        # Load configuration files for the default server block.
        # include /etc/nginx/default.d/*.conf;

		location /static {
            # 指定静态文件存放目录
            alias /root/env/django-ecommerce/static_root/;
        }

        location / {
            # 包含uwisgi的请求参数
            include uwsgi_params;
            # 转交的uwsgi
            uwsgi_pass 127.0.0.1:7777;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2 default_server;
#        listen       [::]:443 ssl http2 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers PROFILE=SYSTEM;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

运行ngixn和uwsgi:

systemctl start nginx.service 进入/root/CCP/Django-Ecommerce/uwsgi_conf文件夹,启动uwsgi: uwsgi --ini uwsgi.ini

访问云主机外网即可访问页面

负载均衡器参照实验六进行添加。

至于前端的一些界面我稍微有些修改,但大体还是一样的。