|
|
@ -1,2 +1,241 @@ |
|
|
|
# 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 |
|
|
|
|
|
|
|
访问云主机外网即可访问页面 |
|
|
|
|
|
|
|
负载均衡器参照实验六进行添加。 |
|
|
|
|
|
|
|
至于前端的一些界面我稍微有些修改,但大体还是一样的。 |