问题:
当我们部署完Nginx静态数据后,发现动态业务无法访问。
原因:
Nginx服务器无法找到美多商城服务器。
解决:
部署美多商城服务器,并使用Nginx反向代理
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "meiduo_mall.settings.prod")
3.安装uwsgi包
Django的程序通常使用uwsgi服务器来运行。$ pip install uwsgi
4.准备uwsgi服务器配置文件
新建meiduo_mall.uwsgi.ini配置文件 [uwsgi] # 使用Nginx连接时使用,Django程序所在服务器地址 socket=172.16.21.25:8001 # 直接做web服务器使用,Django程序所在服务器地址 # http=172.16.21.25:8001 # 项目目录 chdir=项目路径/meiduo_project/meiduo_mall # 项目中wsgi.py文件的目录,相对于项目目录 wsgi-file=meiduo_mall/wsgi.py # 进程数 processes=4 # 线程数 threads=2 # uwsgi服务器的角色 master=True # 存放进程编号的文件 pidfile=uwsgi.pid # 日志文件 daemonize=uwsgi.log # 指定依赖的虚拟环境 virtualenv=虚拟环境路径/.virtualenvs/meiduo_mall # 启动 $ uwsgi --ini uwsgi.ini # 关闭 $ uwsgi --stop uwsgi.pid2. 部署Nginx服务器反向代理
1.修改Nginx服务器配置文件
http { ...... # 美多商城服务器 upstream meiduo { server 172.16.21.25:8001; # 美多商城服务器1 # server 172.16.21.25:8002; # 美多商城服务器2 } server { listen 80; server_name www.meiduo.site; ...... location / { include uwsgi_params; uwsgi_pass meiduo; } } }2.启动Nginx服务器
# 检查配置文件 $ sudo /usr/local/nginx/sbin/nginx -t # 重启 sudo /usr/local/nginx/sbin/nginx -s reload3.测试Nginx反向代理
3. 部署后的代码调整
1.邮箱的验证链接
# 邮箱验证链接(开发环境) # EMAIL_VERIFY_URL = 'http://www.meiduo.site:8000/emails/verification/' # 邮箱验证链接(生产环境) EMAIL_VERIFY_URL = 'http://www.meiduo.site/emails/verification/'2.支付宝的回调地址
# 支付宝 ALIPAY_APPID = '2016082100308405' ALIPAY_DEBUG = True ALIPAY_URL = 'https://openapi.alipaydev.com/gateway.do' # ALIPAY_RETURN_URL = 'http://www.meiduo.site:8000/payment/status/' # (开发环境) ALIPAY_RETURN_URL = 'http://www.meiduo.site/payment/status/' # (生产环境)3.详情页的访问方式
{# 开发环境 #} {# <a href="{{ url('goods:detail', args=(sku.id, )) }}"><img src="{{ sku.default_image.url }}"></a> #} {# <h4><a href="{{ url('goods:detail', args=(sku.id, )) }}">{{ sku.name }}</a></h4> #} {# 生产环境环境 #} <a href="/detail/{{ sku.id }}.html"><img src="{{ sku.default_image.url }}"></a> <h4><a href="/detail/{{ sku.id }}.html">{{ sku.name }}</a></h4>4.QQ登录的回调地址
# QQ登录参数 #(开发环境) # QQ_CLIENT_ID = '101518219' # QQ_CLIENT_SECRET = '418d84ebdc7241efb79536886ae95224' # QQ_REDIRECT_URI = 'http://www.meiduo.site:8000/oauth_callback' # QQ登录参数 #(生产环境) QQ_CLIENT_ID = '101531904' QQ_CLIENT_SECRET = '6afc7211294442e13439b5b4b7ae9118' QQ_REDIRECT_URI = 'http://www.meiduo.site:80/oauth_callback'