Ubuntu上安装Nginx服务器程序及简单的环境配置小结_nginx

Ubuntu 从官方源安装 Nginx

cd ~
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
sudo nano /etc/apt/sources.list   # 添加以下两句
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
sudo apt-get update
sudo apt-get install nginx

Ubuntu 从PPA源安装 Nginx :

sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

Ubuntu 从常规源安装 Nginx :

sudo apt-get install nginx

编译安装Nginx

wget http://nginx.org/packages/mainline/ubuntu/pool/nginx/n/nginx/nginx_1.5.7-1~precise_i386.deb
wget http://nginx.org/download/nginx-1.5.7.tar.gz
tar xzf nginx-1.5.7.tar.gz
cd nginx-1.5.7

(注意:Nginx1.5.7是Mainline版而非Stable版)

为了方便开发和管理,我在根目录下新建了一个png目录,并且目录所有者设置为当前用户,nginx就编译在/png/nginx/1.5.7下面:

sudo mkdir /png
sudo chown eechen:eechen /png

运行用户我定义为png:png,所以我需要新建这样一个用户:

sudo addgroup png --system
sudo adduser png --system --disabled-login --ingroup png --no-create-home --home /nonexistent --gecos "png user" --shell /bin/false

(新建用户的命令可以参考官方Deb包里的预安装脚本DEBIAN/preinst)

编译参数参考了Nginx官方提供的Deb包(nginx -V可见).

./configure \
--prefix=/png/nginx/1.5.7 \
--sbin-path=/png/nginx/1.5.7/sbin/nginx \
--conf-path=/png/nginx/1.5.7/conf/nginx.conf \
--error-log-path=/png/nginx/1.5.7/var/log/error.log \
--http-log-path=/png/nginx/1.5.7/var/log/access.log \
--pid-path=/png/nginx/1.5.7/var/run/nginx.pid \
--lock-path=/png/nginx/1.5.7/var/run/nginx.lock \
--http-client-body-temp-path=/png/nginx/1.5.7/var/cache/client_temp \
--http-proxy-temp-path=/png/nginx/1.5.7/var/cache/proxy_temp \
--http-fastcgi-temp-path=/png/nginx/1.5.7/var/cache/fastcgi_temp \
--http-uwsgi-temp-path=/png/nginx/1.5.7/var/cache/uwsgi_temp \
--http-scgi-temp-path=/png/nginx/1.5.7/var/cache/scgi_temp \
--user=png \
--group=png \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-mail \
--with-mail_ssl_module \
--with-file-aio \
--with-ipv6

注意:这一步按错误提示安装依赖的包,这时就是apt要发威的时候了,比如我的系统安装了这些包:

sudo apt-get -y install \
build-essential \
autoconf \
libtool \
libxml2 \
libxml2-dev \
openssl \
libcurl4-openssl-dev \
libbz2-1.0 \
libbz2-dev \
libjpeg-dev \
libpng12-dev \
libfreetype6 \
libfreetype6-dev \
libldap-2.4-2 \
libldap2-dev \
libmcrypt4 \
libmcrypt-dev \
libmysqlclient-dev \
libxslt1.1 \
libxslt1-dev \
libxt-dev \
libpcre3-dev

安装好这些包后,下次编译新版Nginx就不用再装了,而且基本也满足编译PHP时configure的需求.
好了,configure成功后就可以编译安装了:

time make && make install

time主要用来查看本次编译耗时.
编译好后可以看看这个家伙的个头:

du -sh /png/nginx/1.5.7/sbin/nginx
5.5M /png/nginx/1.5.7/sbin/nginx 

环境简单配置总结
减小Nginx编译后的文件大小:
编辑源文件 nginx-1.5.7/auto/cc/gcc 去除Debug信息(注释掉即可):

# debug
# CFLAGS="$CFLAGS -g"

这样编译后的主程序大小则为700多K,和Nginx官方提供的Deb包程序大小相近.
另外configure时去掉一些不需要的模块,编译后的可执行文件会更小.
当然,我需要一个服务脚本用来管理Nginx,这时同样可以借助官方Deb包里提供的服务脚本etc/init.d/nginx.
我把它放到/png/nginx/1.5.7/nginx,对开头定义的几个值(13到19行)进行稍加修改:

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC=nginx
NAME=nginx
CONFFILE=/etc/nginx/nginx.conf
DAEMON=/usr/sbin/nginx
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
改为
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC=nginx
NAME=nginx
CONFFILE=/png/nginx/1.5.7/conf/nginx.conf
DAEMON=/png/nginx/1.5.7/sbin/nginx
PIDFILE=/png/nginx/1.5.7/var/run/$NAME.pid
SCRIPTNAME=/png/nginx/1.5.7/$NAME

启动前先创建一个cache目录,否则会提示出错:

mkdir /png/nginx/1.5.7/var/cache

启动Nginx:

sudo /png/nginx/1.5.7/nginx start

测试页面:

curl -I `hostname`

看一下端口:

sudo netstat -antp|grep nginx

查看一下它占用的内存:
htop按F4过滤nginx

用top同样能看到类似内容:

top -b -n1|head -n7 && top -b -n1|grep nginx

主要看RES这个值,常驻内存(resident),不包括SWAP空间的物理内存, 单位为KB,%MEM就是以RES为参照对象.
可以看到Nginx两个进程占用的物理内存加起来不到2M,内存占用非常小.
另外top里的RES这个值对应ps aux里的RSS这个值:

ps aux|head -n1 && ps aux|grep nginx

还有我们可以看到Nginx的工人进程只有一个线程:

cat /proc/25047/status|grep Threads
Threads: 1

其中25047是Nginx工人进程PID号.
把Nginx做成系统服务,开机自启动:

sudo ln -s /png/nginx/1.5.7/nginx /etc/init.d/png-nginx
sudo update-rc.d png-nginx defaults #开机自启动
sudo update-rc.d -f png-nginx remove # 以后不想开机自启动可以这样禁止
sudo service png-nginx reload #这样就可以用service来管理Nginx服务了,比如重载配置

最后,Nginx的主配置文件位于/png/nginx/1.5.7/conf/nginx.conf,自己按需配置.

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安装
, ubuntu
, nginx
, 配置
nginx配置
nginx流媒体服务器、nginx 图片服务器、nginx 文件服务器、nginx服务器搭建、nginx 静态文件服务器,以便于您获取更多的相关知识。

时间: 2024-09-20 19:10:16

Ubuntu上安装Nginx服务器程序及简单的环境配置小结_nginx的相关文章

在Ubuntu系统上安装Nginx服务器的简单方法_nginx

安装 Nginx sudo apt-get install nginx      如果你安装了 Apache ,并且此时 Apache 在运行,那么请先修改一下配置文件(没有的同学直接跳过): #打开配置文件 sudo vim /etc/nginx/sites-available/default      然后按以下两处修改(为了不和 Apache 冲突): server { #修改这里 我将 80 改为 88 listen 88 default_server; #还有这里 同样改为你想要的监听

Nginx服务器抵御CC攻击的相关配置讲解_nginx

0x00 CC攻击的基本原理 CC攻击利用代理服务器向网站发送大量需要较长计算时间的URL请求,如数据库查询等,导致服务器进行大量计算而很快达到自身的处理能力而形成DOS.而攻击者一旦发送请求给代理后就主动断开连接,因爲代理并不因爲客户端这边连接的断开就不去连接目标服务器.因此攻击机的资源消耗相对很小,而从目标服务器看来,来自代理的请求都是合法的. 以前防CC攻击的方法 为了防范CC,以前的方法一个是限制每个IP的连接数,这在地址范围很广阔的情况下比较难实现;二是限制代理的访问,因为一般的代理都

Nginx+SSL+Node.js运行环境配置教程_nginx

Nginx是一款高性能的HTTP服务器,同时也是一款高效的反向代理服务器.不像传统的服务器,Nginx是基于事件驱动的异步架构,内存占用少但是性能很好.如果你的Web应用是基于Node.js的,那么建议你考虑使用Nginx来做反向代理,因为Nginx可以非常高效地提供静态文件服务.本文的主要内容是在不同的操作系统下配置Nginx和SSL,并且搭建一个Node.js运行环境. 安装Nginx 假设你已经在服务器上安装了Node.js,下面我们来安装Nginx. 在Mac系统上安装Nginx 利用c

如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP

如何在Ubuntu上安装Apache,MySQL,PHP,Nginx,HAProxy,以及如何在docker上安装LAMP   在Ubuntu上安装LAMP: https://help.ubuntu.com/community/ApacheMySQLPHPhttps://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntuhttp://www.make

[网摘学习]在Ubuntu上安装和配置OpenStack Nova之一

最近在Ubuntu下配置Openstack,由于参考的资源只有官方网站www.openstack.org,而且代码和wiki都在不断的更新,遇到了很多的问题,走了很多弯路,个人FAQ文档那个还在不断的整理中.刚才发现配置方法有中文的,虽然不是很完善,后面的dashborad没有说明,但也有值得借鉴的价值.遂摘录于下,(仅供学习使用,文章归原作者所有),之后我会基于此进行整理和完善修改: 原文参见:http://os.51cto.com/art/201105/263937.htm OpenStac

在Ubuntu上安装和配置Nvidia Optimus驱动

在Ubuntu上安装和配置Nvidia Optimus驱动 Nvidia Optimus是一款利用"双显卡切换"技术的混合GPU系统,但长期以来受限于Linux系统上的诸多不便与限制.在数年的等待之后,搭载这全新内核的Ubuntu 14.04最终实现了非常容易安装的专用驱动的兼容性.这篇文章首先为不熟悉Nvidia Optimus的读者简介相关背景,然后展示整个安装过程.对于对Xorg有着丰富配置经验的老手,可以直接跳到安装部分. 背景知识 对那些不熟悉Nvidia Optimus的读

[网摘学习]在Ubuntu上安装和配置OpenStack Nova之二

再收藏一份Openstack的文章,这两天的操作与此相同.但其中出现的问题还需要查找原因.待个人继续学习研究. 原文参考:http://www.linuxde.net/2011/11/1599.html此处仅供学习记录,版权归原作者. OpenStack 是 Python 2.6 写的,CentOS 5.6 上默认的是 Python 2.4 的环境并且还有很多依赖关系不容易升级到 2.6,所以在 Ubuntu 上安装会简单一些,而且 Ubuntu 是 OpenStack 的官方首选系统,文档都是

如何在 CentOS 7 上安装 Redis 服务器

如何在 CentOS 7 上安装 Redis 服务器 大家好,本文的主题是 Redis,我们将要在 CentOS 7 上安装它.编译源代码,安装二进制文件,创建.安装文件.在安装了它的组件之后,我们还会配置 redis ,就像配置操作系统参数一样,目标就是让 redis 运行的更加可靠和快速. Redis 服务器 Redis 是一个开源的多平台数据存储软件,使用 ANSI C 编写,直接在内存使用数据集,这使得它得以实现非常高的效率.Redis 支持多种编程语言,包括 Lua, C, Java,

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理 Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器.Nginx 是一款高性能的 web 服务器,其特点是功能丰富,结构简单以及内存占用低. 第一个版本由 Igor Sysoev 发布于2002年,到现在有很多大型科技公司在使用,包括 Netflix. Github. Cloudflare. WordPress.com 等等. 在这篇教程里我们会"在 fre