记第一次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. Linux Set Command

    1. set -e "Exit immediately if a simple command exits with a non-zero status." When this o ...

  2. Nodejs基础:stream模块入门介绍与使用

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 nodejs的核心模块,基本上都是stream的的实例 ...

  3. SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结

    下载地址: http://pan.baidu.com/s/1qWDinyk 一 开发环境 1.动态web工程 2.部分依赖 hibernate-release-4.1.0.Final.zip hibe ...

  4. Cohort Analysis and LifeCycle Grids mixed segmentation with R(转)

    This is the third post about LifeCycle Grids. You can find the first post about the sense of LifeCyc ...

  5. 目前微信 微博 新浪 豆瓣等所有分享的js插件

    原理 功能 集成微信.微博.开心.豆瓣.人人.qq微博.搜狐.qq空间等分享 即时分享: 默认加载插件,即启动全部分享 定制分享:通过参数配置.静态数据配置 由你决定何时分享,如何分享 扩展: 通过数 ...

  6. 【PHP】最详细PHP从入门到精通(二)——PHP中的函数

     PHP从入门到精通 之PHP中的函数 各位开发者朋友大家好,自上次更新PHP的相关知识,得到了大家的广泛支持.PHP的火爆程度不言而喻,函数作为PHP中极为重要的部分,应诸位的支持,博主继续跟进更新 ...

  7. 一个想法照进现实-《IT连》创业项目:直觉型面试招聘的漏洞

    前言: 创业转眼又过去了一个月,是时候抽时间写写文向大伙继续汇报进度了. 还记得上一篇创业文章,我还在说:创业时该不该用新手程序员. 嗯,然后,然后,报应就来了:所以这篇要写写自己在新人招聘上出现的问 ...

  8. poj1379

    poj1379 题意 给出 n 个洞的坐标,要求找到一点使得这一点距离最近洞的距离最远. 分析 通过这道题学习一下模拟退火算法, 这种随机化的算法,在求解距离且精度要求较小时很有用. 简而言之,由随机 ...

  9. HashMap集合

    HashMap集合特点(用法与特点类似于HashSet集合): 1.无序,不允许重复(无序指元素顺序与添加顺序不一致): 2.底层数据结构是哈希表 3.HashMap内部对"键"用 ...

  10. Spring Task每次都会调用两次的问题

    最近一个Spring Mvc的项目中需要定时执行一个任务,所以使用了spring 自带的Task功能.本地调试的时候一切都正常,可是部署到服务器上后,每次任务都会被调用两次.在网上搜索了相关的问题,排 ...