ubuntu怎么安装nginx(ubuntucentosdebian)

ubuntu怎么安装nginx(ubuntucentosdebian)

浏览次数:
信息来源: 用户投稿
更新日期: 2026-02-05
文章简介

一、安装nginxnginx是一款轻量级的web服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,并在一个bsd-like协议下发行。其特点是占有内存少,并发能力强,事实上ngi

2025阿里云双十一服务器活动

一、安装nginx

nginx是一款轻量级的web服务器/反向代理服务器及电子邮件(imap/pop3)代理服务器,并在一个bsd-like协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。

nginx同样为当前非常流行的web服务器。利用其部署django,我们在此也做简单的介绍。

打开ubuntu控制台(ctrl+alt+t)利用ubuntu的仓库安装。

fnngj@ubuntu:~$sudoapt-getinstallnginx启动

fnngj@ubuntu:~$/etc/init.d/nginxstop#关闭

fnngj@ubuntu:~$/etc/init.d/nginxrestart#重启

修改nginx默认端口号,打开/etc/nginx/nginx.conf文件,修改端口号。

#access_loglogs/host.access.logmain;

indexindex.htmlindex.htm;

}

如果出现如上图,说明nginx启动成功。

二、安装uwsgi

root@ubuntu:/etc#python3-mpipinstalluwsgi

测试uwsgi,创建test.py文件:

defapplication(env,start_response):

start_response('200ok',[('content-type','text/html')])

return[b"helloworld"]

常用选项:

processes:开启的进程数量

workers:开启的进程数量,等同于processes(官网的说法是spawnthespecifiednumberofworkers/processes)

chdir:指定运行目录(chdirtospecifieddirectorybeforeappsloading)

wsgi-file:载入wsgi-file(load.wsgifile)

stats:在指定的地址上,开启状态服务(enablethestatsserveronthespecifiedaddress)

threads:运行线程。由于gil的存在,我觉得这个真心没啥用。(runeachworkerinprethreadedmodewiththespecifiednumberofthreads)

master:允许主进程存在(enablemasterprocess)

daemonize:使进程在后台运行,并将日志打到指定的日志文件或者udp服务器(daemonizeuwsgi)。实际上最常用的,还是把运行记录输出到一个本地文件上。

pidfile:指定pid文件的位置,记录主进程的pid号。

vacuum:当服务器退出的时候自动清理环境,删除unixsocket文件和pid文件(trytoremoveallofthegeneratedfile/sockets)

三、nginx+uwsgi+django

接下来,我们要将三者结合起来。首先罗列一下项目的所需要的文件:

└──myweb_uwsgi.ini

在我们通过django创建myweb项目时,在子目录myweb下已经帮我们生成的wsgi.py文件。所以,我们只需要再创建myweb_uwsgi.ini配置文件即可,当然,uwsgi支持多种类型的配置文件,如xml,ini等。此处,使用ini类型的配置。

#thebasedirectory(fullpath)

chdir=/home/fnngj/pydj/myweb

#maximumnumberofworkerprocesses

#...withappropriatepermissions-maybeneeded

vacuum=true

这个配置,其实就相当于在上一小节中通过wsgi命令,后面跟一堆参数的方式,给文件化了。

socket指定项目执行的端口号。

ubuntu怎么安装nginx,ubuntucentosdebian

其它几个参数,可以参考上一小节中参数的介绍。

接下来,切换到myweb项目目录下,通过uwsgi命令读取myweb_uwsgi.ini文件启动项目。

fnngj@ubuntu:~$cd/home/fnngj/pydj/myweb/

fnngj@ubuntu:~/pydj/myweb$uwsgi--inimyweb_uwsgi.ini

[uwsgi]gettinginiconfigurationfrommyweb_uwsgi.ini

***startinguwsgi2.0.12(32bit)on[satmar1213:05:062016]***

compiledwithversion:4.8.4on26january201606:14:41

os:linux-3.19.0-25-generic#26~14.04.1-ubuntusmpfrijul2421:18:00utc2015

detectednumberofcpucores:2

currentworkingdirectory:/home/fnngj/pydj/myweb

detectedbinarypath:/usr/local/bin/uwsgi

!!!nointernalroutingsupport,rebuildwithpcresupport!!!

chdir()to/home/fnngj/pydj/myweb

yourprocessesnumberlimitis15962

yourmemorypagesizeis4096bytes

detectedmaxfiledescriptornumber:1024

lockengine:pthreadrobustmutexes

thunderlock:disabled(youcanenableitwith--thunder-lock)

uwsgisocket0boundtotcpaddress:8000fd3

pythonversion:3.4.3(default,oct142015,20:37:06)[gcc4.8.4]

***pythonthreadssupportisdisabled.youcanenableitwith--enable-threads***

pythonmaininterpreterinitializedat0x8b52dc0

yourserversocketlistenbacklogislimitedto100connections

yourmercyforgracefuloperationsonworkersis60seconds

mapped319920bytes(312kb)for4cores

***operationalmode:preforking***

wsgiapp0(mountpoint='')readyin1secondsoninterpreter0x8b52dc0pid:7158(defaultapp)

***uwsgiisrunninginmultipleinterpretermode***

spawneduwsgimasterprocess(pid:7158)

spawneduwsgiworker1(pid:7160,cores:1)

spawneduwsgiworker2(pid:7161,cores:1)

spawneduwsgiworker3(pid:7162,cores:1)

spawneduwsgiworker4(pid:7163,cores:1)

注意查看uwsgi的启动信息,如果有错,就要检查配置文件的参数是否设置有误。

再接下来要做的就是修改nginx.conf配置文件。打开/etc/nginx/nginx.conf文件,添加如下内容。

access_log/var/log/nginx/myweb_access.log;

error_log/var/log/nginx/myweb_error.log;

uwsgi_pass127.0.0.1:8000;

add_headercache-controlprivate;

alias/home/fnngj/pydj/myweb/static/;

……

通过这个ip和端口号的指向,请求应该是先到nginx的。如果你在页面上执行一些请求,就会看到,这些请求最终会转到uwsgi来处理。

以上就是基于ubuntu怎么通过Nginx部署Django的详细内容,更多请关注主机测评网其它相关文章!

标签:
数据中心和服务器的区别
« 上一篇
返回列表
下一篇 »

如本文对您有帮助,就请抽根烟吧!