Nginx之美多商城前台部署
这里我们采用动静分离的方式来部署美多商城项目。
动态请求:采用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之美多商城前台部署的更多相关文章
- JAVAWEB贵美网上商城完整项目源码(SSH2)
JAVAWEB贵美网上商城完整项目源码(SSH2) 贵美网上商城原是北大青鸟的一个内部项目,项目采用 struts2+spring4+hibernate4+MySQL等技术实现,数据库连接池采用c3p ...
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- Nginx+Tomcat+Memcached 实现集群部署时Session共享
Nginx+Tomcat+Memcached 实现集群部署时Session共享 一.简介 我们系统经常要保存用户登录信息,有Cookie和Session机制,Cookie客户端保存用户信息,Sessi ...
- Nginx 和 PHP 的两种部署方式比较
2种部署方式简介 第一种 前置1台nginx服务器做HTTP反向代理和负载均衡 后面多态服务器部署Nginx Web服务和php-fpm提供的fast cgi服务 第二种 前置1台nginx服务器做W ...
- [转]Nginx反向代理和负载均衡部署指南
Nginx反向代理和负载均衡部署指南 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最 ...
- (Nginx+PHP+MySQL)单机+Redis部署
链接:Nginx+PHP+MySQL+Redis多机部署 1.lnmp+redis工作机制 2.lnmp+redis操作步骤(lnmp为单机部署) (1)lnmp+redis实战环境 lnmp服务器: ...
- django+uWSGI+nginx的工作原理流程与部署过程
django+uWSGI+nginx的工作原理流程与部署过程 一.前言 知识的分享,不应该只是展示出来,还应该解释这样做是为什么... 献给和我一样懵懂中不断汲取知识,进步的人们. 授人与鱼,不如授人 ...
- 美多商城后台MIS系统部署之Nginx配置
先进入Nginx的配置文件中,进行配置. Nginx配置文件夹的区别: cd /etc/nginx/conf.d/ 创建.conf后缀的文件 /etc/nginx/sites-enabled 创 ...
- Nginx反向代理和负载均衡部署指南
1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最新版本(目前是1.5.13版本)安装包: ...
随机推荐
- Spring Boot2 系列教程 (三) | 使用 LomBok 提高开发效率
微信公众号:一个优秀的废人 如有问题或建议,请后台留言,我会尽力解决你的问题. 前言 上周去了开年会,去的地方是温泉度假村.老实说,我是无感的,90% 是因为没中奖(老板太抠,两百人只抽三个奖),10 ...
- 加深对于 MVC、MVP、MVVM 的概念理解
目录 MVC 对 MVC 的误解及缘由 MVP MVVM MVC MVC - 维基百科,自由的百科全书 MVC 是软件工程的一种软件架构模式,它不是具体的技术,而是一种代码分层的理念,主要体现了职责分 ...
- bzoj 2683 CDQ分治
题目描述 你有一个N*N的棋盘,每个格子内有一个整数,初始时的时候全部为0,现在需要维护两种操作: 命令 参数限制 内容 1 x y A 1<=x,y<=N,A是正整数 将格子x,y里的数 ...
- oracle的一些简单语法
1.创建主键自增: --创建序列 create sequence seq_tb_user minvalue nomaxvalue start with increment by nocycle --一 ...
- 19南京网络赛B 欧拉降幂
题目链接 给a,b,p.有b个a的幂 #include <iostream> using namespace std; typedef long long LL; const LL N = ...
- JMeter——分布式压测
一.Jmeter4.0分布式压测准备工作 压测注意事项 the firewalls on the systems are turned off or correct ports ...
- 「4.0」一个人开发一个App,小程序从0到1,布局
一提到布局这个词,我总是索索发抖,不是因为天冷,而是因为布局的目标实在太宏大.古代想雄霸天下的王,就喜欢布局这个,布局那个,结果硬生生把自己的国家给布局没了.至于是哪个君王,我倒可以非常认真,非常坦诚 ...
- mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层。
mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层.
- 传递额外的值 Passing Extra Values |在视图中生成输出URL | 高级路由特性 | 精通ASP-NET-MVC-5-弗瑞曼
结果呢 <a href="/App/DoCustomVariable?id=Hello">This is an outgoing URL</a> 理解片段变 ...
- 20191216 GXOI 2019模拟赛 逼死强迫症
题目传送门 分析: sb矩阵加速推一辈子... 想了1个小时,结果好像还和标准答案的方法不一样诶... 标算解法: 老套路,对于新加入的一列,考虑它与目前最后一列的关系 我们可以列出四种方案: 其中前 ...
