这里我们采用动静分离的方式来部署美多商城项目。

动态请求:采用uwsgi与Django进行通信处理动态业务。

静态请求:采用Ngins通过socket与uwsgi进行通信处理静态业务。

第一步:实现uwsgi与Django通信。

1.在Django程序中,项目根路径创建uwsgi.ini文件,用来编写配置文件。

[uwsgi]
# 使用Nginx连接时使用,Django程序所在服务器地址
# socket=192.168.0.105:8001
# 直接做web服务器使用,Django程序所在服务器地址
http=192.168.0.105:8001
# 项目目录
chdir=/home/python/Desktop/meiduo_rest/meiduo_mall
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=meiduo_mall/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/home/python/.virtualenvs/Py3_Django1.11

2. 启动uwsgi

uwsgi:遵循wsgi协议的程序,需要使用http协议进行通信。

# 启动
uwsgi --ini uwsgi.ini # 停止
uwsgi --stop uwsgi.pid

日志文件中出现以下信息即为启动成功。

3. 测试uwsgi是否能够和Django程序进行通信。

利用浏览器向配置文件中的HTTP属性信息发送请求即可。

通过浏览器发送请求,能够获取到响应则表示uwsgi和Django程序能够正常进行通信了。

接来下,就是实现Nginx和uwsgi之间的通信。

1. 修改uwsgi配置文件。

将uwsgi中的配置属性HTTP注释掉,启用socket属性。

[uwsgi]
# 使用Nginx连接时使用,Django程序所在服务器地址
socket=192.168.0.105:8001
# 直接做web服务器使用,Django程序所在服务器地址
# http=192.168.0.105:8001
# 项目目录
chdir=/home/python/Desktop/meiduo_rest/meiduo_mall
# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=meiduo_mall/wsgi.py
# 进程数
processes=4
# 线程数
threads=2
# uwsgi服务器的角色
master=True
# 存放进程编号的文件
pidfile=uwsgi.pid
# 日志文件
daemonize=uwsgi.log
# 指定依赖的虚拟环境
virtualenv=/home/python/.virtualenvs/Py3_Django1.11

2. 配置Nginx

通过编写Nginx的配置文件,实现Nginx与uwsgi进行通信。

# 跳转到配置文件目录
cd /etc/nginx/sites-enabled/ # 创建一个配置文件
sudo vim meiduo

编写配置文件代码:

upstream meiduo {
server 192.168.0.105:8001;
} server{
server_name www.meiduo.site;
listen 80;
location / {
# 导入uwsgi使用的变量
include uwsgi_params;
# 通过负载均衡设置uwsgi
uwsgi_pass meiduo;
}

测试并重新加载Nginx配置信息。

# 测试
sudo nginx -t # 重新加载
sudo nginx -s reload

3. 通过浏览器测试,是否能够使用Nginx实现部署。

通过以上步骤,已经初步实现了美多商城项目动态请求的部署。

美多商城部署进阶部分:静态请求部署

1. 实现主页静态文件请求

修改Nginx配置文件,即可实现。

upstream meiduo {
server 192.168.0.105:8001;
} server{
server_name www.meiduo.site;
listen 80;
location / {
include uwsgi_params;
uwsgi_pass meiduo;
}
location /static {
alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/;
}
}

2. 实现商品详情页面静态化

upstream meiduo {
server 192.168.0.105:8001;
} server{
server_name www.meiduo.site;
listen 80;
location / {
include uwsgi_params;
uwsgi_pass meiduo;
}
# 主页静态文件:css、js等
location /static {
alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/;
}
# 详情页面
location /detail {
alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/;
}
}

3. 实现主页静态化

upstream meiduo {
server 192.168.0.105:8001;
} server{
server_name www.meiduo.site;
listen 80;
location / {
include uwsgi_params;
uwsgi_pass meiduo;
}
# 首页路由
location = /{
root /home/python/Desktop/meiduo_rest/meiduo_mall/static;
index index.html;
}
# 首页静态化
location = /index.html{
root /home/python/Desktop/meiduo_rest/meiduo_mall/static;
index index.html;
}
# 主页静态文件:css、js等
location /static {
alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/;
}
# 详情页面
location /detail {
alias /home/python/Desktop/meiduo_rest/meiduo_mall/static/detail/;
}
}

首页静态化配置,可以理解为当用户在浏览器输入www.meiduo.site时,浏览器会自动在url后拼接一个/,

Nginx进行路由匹配后,会将http://www.meiduo.site/地址,修改成http://www.meiduo.site/index.html地址并进行请求。

Nginx之美多商城前台部署的更多相关文章

  1. JAVAWEB贵美网上商城完整项目源码(SSH2)

    JAVAWEB贵美网上商城完整项目源码(SSH2) 贵美网上商城原是北大青鸟的一个内部项目,项目采用 struts2+spring4+hibernate4+MySQL等技术实现,数据库连接池采用c3p ...

  2. 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.

    刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.

  3. Nginx+Tomcat+Memcached 实现集群部署时Session共享

    Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...

  4. Nginx 和 PHP 的两种部署方式比较

    2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面多态服务器部署Nginx Web服务和php-fpm提供的fast cgi服务 第二种 前置1台nginx服务器做W ...

  5. [转]Nginx反向代理和负载均衡部署指南

    Nginx反向代理和负载均衡部署指南   1.        安装 1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最 ...

  6. (Nginx+PHP+MySQL)单机+Redis部署

    链接:Nginx+PHP+MySQL+Redis多机部署 1.lnmp+redis工作机制 2.lnmp+redis操作步骤(lnmp为单机部署) (1)lnmp+redis实战环境 lnmp服务器: ...

  7. django+uWSGI+nginx的工作原理流程与部署过程

    django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...

  8. 美多商城后台MIS系统部署之Nginx配置

    先进入Nginx的配置文件中,进行配置. Nginx配置文件夹的区别: cd /etc/nginx/conf.d/   创建.conf后缀的文件 /etc/nginx/sites-enabled  创 ...

  9. Nginx反向代理和负载均衡部署指南

    1.        安装 1)         从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包: ...

随机推荐

  1. Spring Boot2 系列教程 (八) | 配置日志

    前言 如题,今天介绍 springboot 默认日志的配置. 默认日志 Logback 默认情况下,Spring Boot 用 Logback 来记录日志,并用 INFO 级别输出到控制台.如果你在平 ...

  2. Java标签学习

    今天早上看Java编程思想第四章控制执行流程,本来很简单的一些东西,但是突然看到了goto发现自己以前还真的没怎么用过,不过Java中对goto作为保留关键字,而是提供了一个叫标签的东西,我们一起来看 ...

  3. Lambda表达式(lambda expression)⭐⭐⭐⭐⭐

    原作者 lambda表达式(lambda expression)实际上是匿名函数一种表示形式, 即没有函数名的函数:参数列表=>表达式或语句块,在我看来主要目是为了简化代码编写,提高代码可读性而 ...

  4. java main 方法

    public static void main(String[] args) { BigDecimal b1 = new BigDecimal(0.01000000); BigDecimal b2 = ...

  5. Window下安装并使用InfluxDB可视化工具 —— InfluxDBStudio

    下载 直接访问: https://github.com/CymaticLabs/InfluxDBStudio/releases/tag/v0.2.0-beta.1 创建or编辑InfluxDB 这个软 ...

  6. stars-one原创工具——蓝奏云批量下载工具

    一款可以批量下载蓝奏云分享的文件夹下的所有文件 基于HtmlUnit和okhttp开源库,所以打包后的jar包文件有点大 蓝奏云下载地址 github地址 需求 之前找电子书资源的时候,网友分享的蓝奏 ...

  7. Docker + node(koa) + nginx + mysql 线上环境部署

    在上一篇 Docker + node(koa) + nginx + mysql 开发环境搭建,我们进行了本地开发环境搭建 现在我们就来开始线上环境部署 如果本地环境搭建没有什么问题,那么线上部署的配置 ...

  8. Oracle GoldenGate for DB2

    --Enable logdb2 update db cfg using LOGARCHMETH1 DISK:/home/db2inst1/arclogs--Rebootdb2 terminatedb2 ...

  9. 资源| 学习视频库-永久有效,持续更新!附赠java面试汇总

    每天进步一丢丢,连接梦与想 我们总是羡慕他人的光芒,却忘记自己也会发光 声明 资源来自于网络,小编只是资源的搬运工,若有侵权,联系小编即删. 期待已久的学习视频库来啦! 经过小编多日整理,整理了1.5 ...

  10. c#数字图像处理(二)彩色图像灰度化,灰度图像二值化

    为加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像,在灰度图像上得到验证的算法,很容易移植到彩色图像上.24位彩色图像每个像素用3个字节表示,每个字节对应着R.G.B分量的亮度(红.绿 ...