共计 4385 个字符,预计需要花费 11 分钟才能阅读完成。
这篇文章主要介绍“Ubuntu 上怎么安装并配置 Nginx”,在日常操作中,相信很多人在 Ubuntu 上怎么安装并配置 Nginx 问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ubuntu 上怎么安装并配置 Nginx”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!
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”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!