郑逸潇 10aa9de227 | преди 3 години | ||
---|---|---|---|
10192100406-云计算开题.docx | преди 3 години | ||
10192100406-云计算开题.pdf | преди 3 години | ||
README.md | преди 3 години | ||
nginx.conf | преди 3 години | ||
~$192100406-云计算开题.docx | преди 3 години |
一,克隆储存库 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
访问云主机外网即可访问页面
负载均衡器参照实验六进行添加。
至于前端的一些界面我稍微有些修改,但大体还是一样的。