Ubuntu上安装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,自己按需配置.

(0)

相关推荐

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

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

  • Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程

    具体环境: Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name:test Nginx uwsgi 假设 项目文件夹位于 /data/www/ts 设置保存在 ./conf 复制代码 代码如下: virtualenv name = test domain name = example.com django+uwsgi的部署实在是太蛋疼了..网上已有的教程似乎有新版本的兼容问题.最后跑到uwsgi官网上找的教程终于跑通了.. 不过官网的教程似

  • Ubuntu下Nginx配置ThinkPHP的Pathinfo和URl Rewrite模式

    概述 在上一篇文章Nginx配置Thinkphp支持URL Rewrite中已经介绍了如何配置Nginx支持ThinkPHP的URL Rewrite,但是上文针对的是Centos平台,这次因为某些特殊的原因,服务器环境必须用ubuntu,本来以为和Cetons中一模一样,但是配置完了发现不能使用,所以就百度了一些文章. 配置方法 TP官方解决方案 复制代码 代码如下: location ~ .php         {                 #原有代码                

  • ubuntu系统中nginx启动脚本

    复制代码 代码如下: #! /bin/sh### BEGIN INIT INFO# Provides:          nginx# Required-Start:    $remote_fs $syslog# Required-Stop:     $remote_fs $syslog# Default-Start:     2 3 4 5# Default-Stop:      0 1 6# Short-Description: nginx init.d dash script for Ub

  • ubuntu下配置nginx+php+mysql详解

    1.更新 www.jb51.net 复制代码 代码如下: sudo apt-get update 2.安装nginx 复制代码 代码如下: sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为: * 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下  www.jb51.net *程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中 *并已经在/etc

  • ubuntu 下的nginx服务器配置详解

    ubuntu 下的nginx服务器配置详解 1.nginx服务器的安装 sudo apt-get install nginx 2.nginx服务器的启动 sudo /etc/init.d/nginx start 3.多域名对应不同的后台服务器 在/etc/nginx/sites-enabled/ 目录中删除default配置文件 新建域名对应的配置文件 比如test.youlunshidai.com #通过upstream nodejs__upstream 可以配置多台nodejs节点,做负载均

  • Ubuntu中搭建Nginx、PHP环境最简单的方法

    前言:百度出来的结果好坑爹,而且某些文章说别人坑爹,可他自己也坑爹.求业界良心啊.还是谷歌靠谱. 系统环境:Ubuntu 13 和 Linux Mint 15都通过. 默认安装的是nginx 1.2.5,php5.4.9 先安装: 复制代码 代码如下: sudo apt-get install nginx php5-fpm 我是在新安装的Ubuntu13上测试通过的,真的只安装这两个东西就够了. 然后编辑配置文件. 复制代码 代码如下: sudo gedit /etc/nginx/site-av

  • ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)

    由于只是开发环境,所以都是选择比较简单的apt-get安装方式 ,但中间也遇到一点问题. 首先安装nginx nginx的安装和配置其实很简单,nginx本身非常轻量级, 直接 sudo apt-get install nginx 就可以了 他的配置文件是在/etc/nginx/里面,网站项目路径是在/var/www里面,安装之后一定要确保nginx的启动账户有对网站目录的访问权限,否则会报错. 第二步,安装cgi linux底下的cgi程序非常多,在这里我选择的是php5-fpm 方便  在这

  • Ubuntu上安装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 ng

  • 在Linux和Windows系统上安装Nginx服务器的教程

    1.在CentOS系统上安装Nginx 在 CentOS6 版本的 EPEL 源中,已经加入了 nginx 的 rpm 包,不过此 RPM 包版本较低.如果需要更新版本,可以使用官方制作的 rpm 包,或者使用源码包编译安装. 还可以使用一些二次开发功能增强的 nginx 版本,例如淘宝的 Tengine 和 OpenResty 都是不错的选择. 1.1 常用编译参数 --prefix=PATH:指定 nginx 的安装目录     --conf-path=PATH:指定 nginx.conf

  • 详解如何在Ubuntu 20.04上安装Xrdp服务器(远程桌面)

    Xrdp 是一个微软远程桌面协议(RDP)的开源实现,它允许你通过图形界面控制远程系统.通过 RDP,你可以登录远程机器,并且创建一个真实的桌面会话,就像你登录本地机器一样. 这篇指南讲解如何在 Ubuntu 20.04 上安装和配置 Xrdp 服务器. 一.安装桌面环境 Ubuntu 服务器通常使用命令行进行管理,并且默认没有安装桌面环境.如果你正在运行 Ubuntu 桌面版,忽略这一步. 在 Ubuntu 源仓库有很多桌面环境供你选择.一个选择是安装 Gnome,它是 Ubuntu 20.0

  • CentOS6.5环境安装nginx服务器及负载均衡配置操作详解

    本文实例讲述了CentOS6.5环境安装nginx服务器及负载均衡配置操作.分享给大家供大家参考,具体如下: 1.下载PCRE, 是一个用C语言编写的正则表达式函数库 [root@localhost pcre-8.36]# cd /tmp/download/ [root@localhost download]# wget http://nchc.dl.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz [root@localhost d

  • 腾讯云CentOS 6.6快速安装 Nginx服务器图文教程

    一.下载Nginx 从Nginx的官网(http://nginx.org/en/download.html)下载Nginx的最新版本,这里我下载的是nginx-1.9.12. 下载完成后,得到一个如下图所示的压缩包 上传nginx的tar包到Linux服务器上,如下图所示: 二.安装Nginx 2.1.安装前提 在安装Nginx前,需要确保系统安装了g++,gcc, openssl-devel.pcre-devel和zlib-devel软件. 1.安装必须软件:yum -y install zl

  • Ubuntu上安装yaf扩展的方法

    一.下载 yaf扩展下载地址 http://pecl.php.net/package/yaf 选择你想要下载的包 wget http://pecl.PHP.net/get/yaf-2.3.5.tgz tar zxvf yaf-2.3.5.tgz cd yaf-2.3.5 二.安装 #whereis phpize /data/yaf-2.3.5# /usr/bin/phpize #whereis php-config php-config: /usr/bin/php-config /usr/sha

  • 在 Ubuntu 上安装 Protobuf 3 的教程详解

    什么时候需要安装 如果使用 protoc 命令,遇到 Protoc not found,表示未安装.或者,执行时出现错误:This parser only recognizes "proto2",则表示不是3.0版. 安装过程及可能遇到的问题 安装指令 详细介绍请参考此文:protobuf简单介绍和ubuntu 16.04环境下安装 依次执行以下命令,下载源码编译安装,需要较长时间,超过10分钟. sudo apt-get install autoconf automake libto

  • 在Win10上安装Tomcat服务器及配置环境变量的详细教程(图文)

    Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选.本文主要讲述Windows环境Tomcat服务器安装与环境变量配置 下载安装JDK 要想安装Tomcat服务器,首先要安装配置好JDK,可以参考JDK安装与环境变量配置 Windows + R然后输入cmd进入命令行窗口,检查Java是否安装正确,检查的命令为java -version 如果输出类似下面的内容说明安装成功

  • 在Ubuntu上安装最新版本的Node.js

    Node.js包含了Google V8 JavaScript引擎,libuv库和核心库几乎都是使用JavaScript编写的.libuv库提供了异步事件I/O的抽象和Node.js跨平台的机制. Node.js最初是由Ryan Dahl创建的,目前由Isaac Schlueter在演进和维护. 在互联网上有很多从源码编译安装Node.js的文章,在此我强烈建议不要采用这种方法.大多数情况下,包维护者对软件结构了解的非常清楚,开发者无需从头编译最新版本的源码. 下面的方法适用于最新版本的Ubunt

随机推荐