记一次Nginx的配置
记第一次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。
- 启动
启动以后会发现后台有多个nginx进程(取决于你的nginx配置),其中一种是worker process,另一种是master process,顾名思义,worker process负责的是将处理本地发送的请求的进程,而master process则负责管理worker process。
sudo ./nginx
- 检查nginx的配置文件是否正确
sudo ./nginx -t
- 重启nginx,这里的重启能够很好的平滑过度,不会存在停止nginx
sudo ./nginx -s reload
- 停止
通过查询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的配置的更多相关文章
- 记一次nginx php配置的心路历程
1.本来搞好了php的配置,想把目录下移一层 从 www.abc.com 变成 www.abc.com/wxapi ,由于我的真实文件目录比路由少了一层public 尝试了很多办法都不行 甚至想到了u ...
- 【Asp.net Core】在 Linux 子系统中安装 nginx 并配置反向代理
上一篇鸟文中,老周已经介绍过在 Ubuntu 子系统中安装 dotnet-sdk 的方法,本文老周给大伙伴们说说安装 nginx 服务,并配置反向代理.同样,老周假设你从来没有用过 Linux,所以老 ...
- 如何在Nginx下配置PHP程序环境
1.nginx与PHP的关系 首先来看nginx与php的关系, FastCGI的关系(而不是像apache那样安装成nginx的模块) FastCGI的意思是, 快速的通用网关接口:CGI Comm ...
- 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡
为什么现在有非常多的聪明人都在致力于互联网? 最近在读埃隆·马斯克传记,他说「我认为现在有非常多的聪明人都在致力于互联网」. 仔细一想,好像真的是这样的. 我问了自己一个问题:如果你不敲代码了,你能做 ...
- Nginx主配置参数详解,Nginx配置网站
1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...
- nginx + tomcat配置负载均衡
目标:Nginx做为HttpServer,连接多个tomcat应用实例,进行负载均衡. 注:本例程以一台机器为例子,即同一台机器上装一个nginx和2个Tomcat且安装了JDK1.7. 1.安装Ng ...
- 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. ...
- Nginx Location配置总结
Nginx Location配置总结 语法规则: location [=|~|~*|^~] /uri/ { - }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即 ...
- 理解nginx的配置
Nginx配置文件主要分成四部分:main(全局设置).server(主机设置).upstream(上游服务器设置,主要为反向代理.负载均衡相关配置)和 location(URL匹配特定位置后的设置) ...
随机推荐
- Zookeer-- 上搭建 hbase
一.HBase的相关概念1.HBase的概念:大量数据进行随机近实时读写时使用Hbase.2.HBase是一个模仿Gootable's Bigtable的,开源的.分布式的.版本化的非关系型数据库.3 ...
- 【JavaScript你需要知道的基础知识~】
最近开始学习JavaScript,整理了一些相关的基础知识 JS注释方式:// 单行注释(Ctrl+/ )/* 段落注释(Ctrl+shift+/ )*/ [JavaScript基础]JavaScri ...
- 《高性能javascript》 --- in case of odd number of items(奇怪的条目的数量)
不知道是做着故意放的还是什么原因.总之运行后就会出现问题(奇怪的条目的数量) function merge(left, right){ var result = []; while (left.len ...
- 15、TCP/IP协议
15.TCP/IP协议 几台孤立计算机系统组在一起形成网络,几个孤立网络连在一起形成一个网络的网络,即互连网.一个互连网就是一组通过相同协议族互连在一起的网络. 互联网的目的之一是在应用程 ...
- Spring MVC和Struts2的比较
Spring MVC PK Struts2 我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置.spring3 mvc可以认为已经100%零配置了(除了配置spring mvc ...
- .net操作压缩文件
附件:SharpZipLib.zip public class UnZipClass//解压 { /// <summary> /// 解压功能(解压压缩文件到指定目录) /// </ ...
- Java反射机制剖析(二)-功能以及举例
从<java反射机制剖析(一)>的API我们看到了许多接口和类,我们能够通过这些接口做些什么呢? 从上篇API中我们能看到它能够完成下面的这些功能: 1) 获得类 A. 运 ...
- IPad分屏,当电脑第二显示屏
最在在网上看到使用IPad可以做为电脑的第二个显示屏,对于我这样一个程序猿来说,这真是我的福音呀!因此在网上搜了许多关于Ipad投屏的信息,下面简单说明一下,包括怎么使用! 1.根据在网上搜索的结果, ...
- 全景智慧城市——VR全景,开启VR营销新时代
全景是一种新兴的富媒体技术. 与视频.声音.图片等传统主流媒体最大的区别是"可操作,可交互". 全景给人以三维立体感觉的实景360°全方位图像,此图像最大的三个特点: 全方位:展示 ...
- 一天搞定HTML----列表标签03
1.细说列表标签 2.代码演示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...