这篇文章主要介绍“Ubuntu上怎么安装并配置Nginx”,在日常操作中,相信很多人在Ubuntu上怎么安装并配置Nginx问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”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,自己按需配置.
到此,关于“Ubuntu上怎么安装并配置Nginx”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注云搜网网站,小编会继续努力为大家带来更多实用的文章!