记第一次Nginx的配置

Nginx

首先了解到Nginx是干什么的?它有哪些作用?比较常用到的基础功能有反向代理、负载均衡、正向代理、http服务器。这次部署用到的就是反向代理。

反向代理就是指在目标服务器和本地客户端之间建立一个中介,每次在本地客户端想要访问目标服务器的时候,nginx则会通过监听到相关的请求,收到请求之后将相应的请求向目标服务器进行请求,将目标服务器发送回来的应答信息返回给本地服务器并且将其显示出来。简单来说就是,外部的服务器是无法通过外部网络来访问的,但是有了代理服务器nginx以后可以通过nginx反向代理到服务器,同时nginx和服务器又是在同一个环境中,其端口号不同。而且nginx可以将服务器的资源保存在本地缓存中,如果再次访问的时候,nginx就不需要再去请求服务器了,直接将之前缓存的资源返回给本地。还有反向负载均衡,即通过将本地的请求分发给多个目标服务器,从而避免造成一个目标服务器的压力过大的情况。

下面这个简单的配置就能够实现nginx的反向代理:

server {
listen 80;
server_name localhost;
client_max_body_size 1024M;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host:$server_port;
}
}

上面指定nginx监听80号端口,并且指定代理的网址。

操作

因为我的操作系统是mac,则首先进到nginx的目录,即/usr/local/nginx/sbin

  1. 启动

启动以后会发现后台有多个nginx进程(取决于你的nginx配置),其中一种是worker process,另一种是master process,顾名思义,worker process负责的是将处理本地发送的请求的进程,而master process则负责管理worker process。

sudo ./nginx
  1. 检查nginx的配置文件是否正确
sudo ./nginx -t
  1. 重启nginx,这里的重启能够很好的平滑过度,不会存在停止nginx
sudo ./nginx -s reload
  1. 停止

通过查询ps -ef|grep nginx,再使用sudo kill -9 pid 即可。

uWSGI

这个是web框架中的服务器,实现了WSGI,uwsgi,https等协议,它负责了将前端的动态请求(如果是静态请求,比如素材,nginx则从其缓存中返回)进行接收,接着web框架会处理对应的信息,将渲染完后相关的页面提交给uWSIGI服务器,有服务器将信息返回给前端。大概的流程如下图:

它的配置也很简单

[uwsgi]
chmod-socket = 664
uid = www-data
gid = www-data
socket = :8000 这里的端口号要和nginx中配置的不同,否则会造成冲突
chdir = "your project dir"
module = project.wsgi
master = true
processes = 4
vacuum = true

启动uwsgi,如果要停下来,control-c即可。

uwsgi --ini uwsgi_name.ini

在配置完了以后,项目的素材无法显示,看logs信息返回的是

通常情况下,我们在nginx配置user的时候默认是www-data;我们可以通过命令#ps aux | grep "nginx: worker process" | awk '{print $1}'查看woker process的拥有者,判断你的配置是否和命令返回的一致,如果不一致就会发生权限的问题。

接着,如果只是将user改成user yourusername,依然是不正确的,因为根据nginx的官方文档:

Syntax: user user [group];
Default: user nobody nobody;
Defines user and group credentials used by worker processes. If group is omitted, a group whose name equals that of user is used.

因此漏了一个group,我们可以通过命令id -g -n $whoami可以查看group name,在后面加上group name,再重启nginx,一切正常!

user username groupname

记一次Nginx的配置的更多相关文章

  1. 记一次nginx php配置的心路历程

    1.本来搞好了php的配置,想把目录下移一层 从 www.abc.com 变成 www.abc.com/wxapi ,由于我的真实文件目录比路由少了一层public 尝试了很多办法都不行 甚至想到了u ...

  2. 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理

    上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...

  3. 如何在Nginx下配置PHP程序环境

    1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...

  4. 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡

    为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...

  5. Nginx主配置参数详解,Nginx配置网站

    1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...

  6. nginx + tomcat配置负载均衡

    目标:Nginx做为HttpServer,连接多个tomcat应用实例,进行负载均衡. 注:本例程以一台机器为例子,即同一台机器上装一个nginx和2个Tomcat且安装了JDK1.7. 1.安装Ng ...

  7. spring4+websocket+nginx详细配置

    实现的版本jdk1.7.0_25, tomcat7.0.47.0, Tengine/2.1.1 (nginx/1.6.2), servlet3.0, spring4.2.2 使用maven导入版本3. ...

  8. Nginx Location配置总结

    Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...

  9. 理解nginx的配置

    Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...

随机推荐

  1. 【JAVAWEB学习笔记】07_BootStrap、Viewport介绍

    今天主要学习了BootStrap,viewport的介绍和最后对网站进行了重构 今天晨读单词: Compatible:兼容性 viewport:视口 device:设备 initial:初始化(缩写i ...

  2. 张高兴的 Windows 10 IoT 开发笔记:使用 ADS1115 读取模拟信号

    考虑到 Raspberry Pi 读取模拟信号是很烦人的事情,更何况是在没人玩的 Windows 10 IoT 下,所以准备正儿八经的写点东西. 需求:使用 Raspberry Pi 读取输出模拟信号 ...

  3. 【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!

     PHP从精通到入门 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸 ...

  4. 浏览器兼容性--new Date

    ie浏览器下new Date("2013/04")与new Date("2016-04")会报错: //将201601格式的字符串转为Date对象,月份从0开始 ...

  5. Oracle 只导出某个用户下的表及数据

    今天某大牛问我要之前我参与的一个系统的代码及库,我捣鼓下,发给了他. 他很诧异的问:这个库有这么大么 我说 因为当时是专门新建了一个实例,用户也是系统用户,所以导出的时候是导出的整个数据库 他 ZZ ...

  6. 开涛spring3(12.1) - 零配置 之 12.1 概述

    12.1  概述 12.1.1  什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web ...

  7. RFM模型——构建数据库营销的商业战役!(转)

    RFM模型:R(Recency)表示客户最近一次购买的时间有多远,F(Frequency)表示客户在最近一段时间内购买的次数,M (Monetary)表示客户在最近一段时间内购买的金额.一般原始数据为 ...

  8. springcloud(八):配置中心服务化和高可用

    在前两篇的介绍中,客户端都是直接调用配置中心的server端来获取配置文件信息.这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,serve ...

  9. npm 一条命令更换淘宝源

    一条命令更换淘宝源 npm config set registry https://registry.npm.taobao.org

  10. sql备份(.mdf文件备份)

    第一步: 右键需要备份的数据库(这里以MyDB为例),选择“属性”. 第二步: 选择“文件”,复制路径 第三步: 打开文件所在目录,复制MyDB.mdf和MyDB_log.ldf 第四步: 把数据库停 ...