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

Ubuntu 从官方源安装 Nginx

?
1
2
3
4
5
6
7
8
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 :

?
1
2
3
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx

Ubuntu 从常规源安装 Nginx :

?
1
sudo apt-get install nginx

编译安装Nginx

?
1
2
3
4
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下面:

?
1
2
sudo mkdir /png
sudo chown eechen:eechen /png

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

?
1
2
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可见).

?
1
./configure \
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
–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要发威的时候了,比如我的系统安装了这些包:

?
1
sudo apt-get -y install \
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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成功后就可以编译安装了:
?
1
time make && make install

time主要用来查看本次编译耗时.

编译好后可以看看这个家伙的个头:
?
1
du -sh /png/nginx/1.5.7/sbin/nginx
?
1
5.5M /png/nginx/1.5.7/sbin/nginx

环境简单配置总结

减小Nginx编译后的文件大小:

编辑源文件 nginx-1.5.7/auto/cc/gcc 去除Debug信息(注释掉即可):
?
1
2
# debug
# CFLAGS=”$CFLAGS -g”

这样编译后的主程序大小则为700多K,和Nginx官方提供的Deb包程序大小相近.

另外configure时去掉一些不需要的模块,编译后的可执行文件会更小.

当然,我需要一个服务脚本用来管理Nginx,这时同样可以借助官方Deb包里提供的服务脚本etc/init.d/nginx.

我把它放到/png/nginx/1.5.7/nginx,对开头定义的几个值(13到19行)进行稍加修改:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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目录,否则会提示出错:

?
1
mkdir /png/nginx/1.5.7/var/cache

启动Nginx:

?
1
sudo /png/nginx/1.5.7/nginx start

测试页面:

?
1
curl -I `hostname`

看一下端口:

?
1
sudo netstat -antp|grep nginx

查看一下它占用的内存:

htop按F4过滤nginx

%小知识:Ubuntu上安装Nginx服务器程序及简单的环境配置小结-猿站网-插图

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

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

%小知识:Ubuntu上安装Nginx服务器程序及简单的环境配置小结-1猿站网-插图

主要看RES这个值,常驻内存(resident),不包括SWAP空间的物理内存, 单位为KB,%MEM就是以RES为参照对象.

可以看到Nginx两个进程占用的物理内存加起来不到2M,内存占用非常小.

另外top里的RES这个值对应ps aux里的RSS这个值:
?
1
ps aux|head -n1 && ps aux|grep nginx

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

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

其中25047是Nginx工人进程PID号.

把Nginx做成系统服务,开机自启动:
?
1
2
3
4
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,自己按需配置.

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Linux中的软链接、硬链接:都用在哪些场合?

2023-4-29 5:00:19

建站知识

小知识:Linux查看内存命令及其对命令显示的解释

2023-4-29 5:08:52

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索