ubantu18.04 配置nginx与uwsgi(前后端分离)

一、首先先安装nginx静态服务

先更新 sudo apt-get update

1.安装gcc g++的依赖库

sudo apt-get install build-essential && sudo apt-get install libtool

2.安装pcre依赖库

sudo apt-get install libpcre3 libpcre3-dev

3.安装zlib依赖库

sudo apt-get install zlib1g-dev

4.安装ssl依赖库

sudo apt-get install openssl

安装nginx

下载

sudo wget http://nginx.org/download/nginx-1.11.3.tar.gz

解压

sudo tar -zxvf nginx-1.11.3.tar.gz

然后 在 /usr/local/ 目录下创建nginx目录,然后把解压好的放到 /usr/local/nginx 下

分别执行:

sudo mkdir nginx
sudo mv nginx-1.11.3 /usr/local/nginx

执行编译nginx

先 cd /usr/local/nginx/nginx-1.11.3到这个目录下

配置:

sudo ./configure 

编译

sudo make

在编译步骤出现如下错误:

解决方法:

找到目录下:objs/Makefile文件,打开该文件进行编辑:

将红圈部分删掉即可,修改保存之后重新运行sudo make进行编译

 安装nginx:

sudo make install
    启动nginx:

先cd /usr/local/nginx在这个目录下

sudo sbin/nginx

关闭nginx命令:

sudo sbin/nginx -s stop

查看nginx进程状态

ps aux|grep nginx 

配置nginx

在该目录下新建该文件

然后配置该文件:

upstream ihasy  {
    server 127.0.0.1:9001; #Tornado
}

## Start www.ihasy.com ##
server {
    listen 80;
    server_name  www.ihasy.com ihasy.com;

    #root   html;
    #index  index.html index.htm index.py index;

    ## send request back to Tornado ##
    location / {
        proxy_pass  http://ihasy;

        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
   }
}
## End www.ihasy.com ##

保存退出,然后编辑  /usr/local/nginx/conf/nginx.conf

include ihasy.conf   加到 红框的位置即可

保存,重启nginx,即可实现反向代理。

再重新编辑/usr/local/nginx/conf/nginx.conf文件 配置项目前后端 

编辑nginx.conf 文件,也可以下载该文件进行覆盖,注意以下需要配置的地方,

这个是你前端端口号

配置你的前端项目路径

这个是你的后台端口

保存退出之后需要在项目配置文件中添加生成前端静态文件:

然后在你的项目setiing.py里配置:

DEBUG = True

改为

DEBUG = False

STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)),‘front_end/static‘)

上面这行意思是指定静态文件的位置,运行下面这条命令后会把你每个应用里的静态文件全部收集到该文件夹下

python manage.py collectstatic

这样再启动nginx服务,前端页面就可以运行成功。

二 、接下来配置动态后端服务:

1,在你的虚拟环境下 直接;

pip install uwsgi

2,在后端项目目录下新建 ,和你manage.py同级的目录下新建 uwsgi.ini文件,或者直接下载该文件

配置uwsgi.ini文件如下:()以下红色字体是需要编辑注意的地方,

[uwsgi]

#使用nginx连接时使用,Django程序所在服务器地址

socket=127.0.0.1:3309

#直接做web服务器使用,Django程序所在服务器地址

#http=127.0.0.1:8000 

#项目目录

chdir=/home/python/Desktop/meiduo/meiduo_mall       #注意这里是你的项目路劲

#项目中wsgi.py文件的目录,相对于项目目录

wsgi-file=meiduo_mall/wsgi.py                       #这里是你的项目的wsgi.py文件

# 进程数

processes=4

# 线程数

threads=2

# uwsgi服务器的角色

master=True

# 存放进程编号的文件

pidfile=uwsgi.pid

# 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的

daemonize=uwsgi.log

# 指定依赖的虚拟环境

virtualenv=/home/python/.virtualenvs/xxx(虚拟环境名称)            #虚拟环境位置 例:virtualenv=/home/lvye/.virtualenvs/django1_1

然后启动:

uwsgi --ini uwsgi.ini

查看是否运行:

关闭命令

 uwsgi --stop uwsgi.pid

到此,一个简单的Django项目部署就完成了!!!

项目部署完成之后,如何让你局域网里的用户访问你的web项目呢?来我们接着整?

1)将我们的虚拟机网络模式设置为 桥接模式设置为桥接模式,解释看下图:

然后再虚拟机里查看本地ip,然后将我们原先项目前端请求的url接口的ip 改为:

就这样 我们就可以在局域网 访问我们的web服务器了  访问地址: 虚拟机ip + 端口,端口也就是上面定义nginx静态服务的端口。

原文地址:https://www.cnblogs.com/gaosai/p/10410350.html

时间: 2024-10-12 07:48:19

ubantu18.04 配置nginx与uwsgi(前后端分离)的相关文章

nginx反向代理前后端分离项目(后端多台)

目前软件架构都比较流行前后端分离,前后端的分离也实现了前后端架构的分离,带来的好处 —— 整个项目的开发权重往前移,实现真正的前后端解耦,动态资源和静态资源分离,提高了性能和扩展性. 通常SpringBoot与vue 进行前后端分离,主要有两种方式: 1.打包(npm run build命令)vue项目出来的dist文件夹拷贝到springboot项目的static文件目录,部署到tomcat即可. 2.利用nginx的反向代理. 本文主要讲解第二种 首先打包前端项目到指定目录:E:\fjgh\

nginx配置反向代理解决前后端分离跨域问题

摘自<AngularJS深度剖析与最佳实践>P132 nginx配置文件如下: server { listen 80; server_name your.domain.name; location / { # 把跟路径下的请求转发给前端工具链(如gulp)打开的开发服务器 # 如果是产品环境,则使用root等指令配置为静态文件服务器 proxy_pass http://localhost:5000/; } location /api/ { # 把 /api 路径下的请求转发给真正的后端服务器

谈谈渲染,玩玩nginx——前后端分离,转发请求到Tomcat的尝试

一.谈谈"渲染" 相信好多人都挺听过"渲染"这个词,但不清楚它是什么意思?前端开发以为这是后端的活儿,后端开发以为是前端的事儿,推着推着就不了了之.其实渲染很简单,不说概念,直接举例: 1. 后端渲染:以JSP为例,可以分成三步 a.编写标签或Java代码(可以称之为模板) b.在JSP编译阶段被转换成Servlet编译为Servlet Class c.执行编译后的代码,将响应(模板执行结果)返回给页面 优势:减少前端工作,前端只需要设计纯页面,其他的都由后端来做:

通过nginx部署前端代码实现前后端分离

实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不用在需要往JSP页面注入数据. 通过nginx来部署前端代码,可以帮助前端实现以下基本需求: 1.请求转发,解决请求跨域的问题 server { listen       7777; location /{ root   /Users/xiaoyun/git/someproject/dist; }

SpringBoot电商项目实战 — 前后端分离后的优雅部署及Nginx部署实现

在如今的SpringBoot微服务项目中,前后端分离已成为业界标准使用方式,通过使用nginx等代理方式有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务架构.多端化服务(多个客户展现端,例如:web端,安卓app,IOSapp,微信小程序等)打下坚实的基础.这个步骤是系统架构从猿进化成人的必经之路. image 上图是简单的分布式微服务开发及前后端分离的示意图.展现层也就是所谓的前端(客户可直观看到的),比如电商项目前端包含:app(安卓和IOS).微信小程序.PC商

localStorage + 配置url 前后端分离之前端先行

关于localStorage和sessionStorage的基础说明说明网上一大堆,这里说下自己的一个亲身应用. 使用localStorage配置url,使前端代码更方便适配测试和真实环境: 大家都知道如果前后端分离的话,往往很多时候可以前端先行,不依赖于后台(接口得提前定义好). 但是存在两个问题: 1.前后端分离后前端虽然不依赖于后台,但是依赖ajax返回的结果 2.往往自己造的mock地址跟真是环境的url地址不一致,如果写死了,则需要改动很大一片 先说第二个问题,之前在一个项目上看到的时

部署前后端分离项目

路飞前后端项目部署 前言 使用软件 vue 部署前段 uwsgi uWSGI是一个全功能的HTTP服务器,实现了WSGI协议.uwsgi协议.http协议等.它要做的就是把HTTP协议转化成语言支持的网络协议.比如把HTTP协议转化成WSGI协议,让Python可以直接使用. centos7 系统环境 virtulenv 在虚拟环境中部署后端项目 nginx 使用nginx做反向代理 redis 存储数据 mysql(mariadb) 存储数据 supervisor Linux/Unix系统下的

利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境

前后端分离这个词一点都不新鲜,完全的前后端分离在岗位协作方面,前端不写任何后台,后台不写任何页面,双方通过接口传递数据完成软件的各个功能实现.此种情况下,前后端的项目都独立开发和独立部署,在开发期间有2个问题不可避免:第一是前端调用后台接口时的跨域问题(因为前后端分开部署):第二是前端脱离后台服务后无法独立运行.本文总结最近一个项目的工作经验,介绍利用grunt-contrib-connect和grunt-connect-proxy搭建前后端分离的开发环境的实践过程,希望能对你有所帮助. 注:

[转] 前后端分离开发模式的 mock 平台预研

引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都各自有自己的开发流程,构建工具,测试集合 关注点分离,前后端变得相对独立并松耦合 开发流程 后台编写和维护接口文档,在 API 变化时更新接口文档 后台根据接口文档进行接口开发 前端根据接口文档进行开发 开发完成后联调和提交测试 面临问题 没有统一的文档编写规范,导致文档越来越乱,无法维护和阅读 开