nginx的源码安装

yum install -y pcre-devel
tar zxvf nginx-1.4.2.tar.gz
vi auto/cc/gcc
#CFLAGS=”$CFLAGS -g” (注释掉这行,去掉debug模式编译,编译以后程序只有几百k)
vi src/core/nginx.h
#define NGINX_VERSION "1.4.2”
#define NGINX_VER "nginx" (修改此行,去掉后面的“NGINX_VERSION”,为了安全,这样编译后外界无法获取程序的版本号)

进入源码包中

[root@server37 mnt]# cd nginx-1.4.2/
[root@server37 nginx-1.4.2]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
./configure --help //查看功能模块
[root@server37 nginx-1.4.2]# ./configure --help
--help                             print this message
--prefix=PATH                      set installation prefix
--sbin-path=PATH                   set nginx binary pathname
--conf-path=PATH                   set nginx.conf pathname
--error-log-path=PATH              set error log pathname
--pid-path=PATH                    set nginx.pid pathname
--lock-path=PATH                   set nginx.lock pathname
--user=USER                        set non-privileged user for
worker processes
--group=GROUP                      set non-privileged group for
worker processes
--builddir=DIR                     set build directory
--with-rtsig_module                enable rtsig module
--with-select_module               enable select module
--without-select_module            disable select module
--with-poll_module                 enable poll module
--without-poll_module              disable poll module
--with-file-aio                    enable file AIO support
--with-ipv6                        enable IPv6 support
--with-http_ssl_module             enable ngx_http_ssl_module
--with-http_spdy_module            enable ngx_http_spdy_module
--with-http_realip_module          enable ngx_http_realip_module
--with-http_addition_module        enable ngx_http_addition_module
--with-http_xslt_module            enable ngx_http_xslt_module
--with-http_p_w_picpath_filter_module    enable ngx_http_p_w_picpath_filter_module
--with-http_geoip_module           enable ngx_http_geoip_module
--with-http_sub_module             enable ngx_http_sub_module
--with-http_dav_module             enable ngx_http_dav_module
--with-http_flv_module             enable ngx_http_flv_module
--with-http_mp4_module             enable ngx_http_mp4_module
--with-http_gunzip_module          enable ngx_http_gunzip_module
--with-http_gzip_static_module     enable ngx_http_gzip_static_module
--with-http_random_index_module    enable ngx_http_random_index_module
--with-http_secure_link_module     enable ngx_http_secure_link_module
--with-http_degradation_module     enable ngx_http_degradation_module
--with-http_stub_status_module     enable ngx_http_stub_status_module
--without-http_charset_module      disable ngx_http_charset_module
--without-http_gzip_module         disable ngx_http_gzip_module
--without-http_ssi_module          disable ngx_http_ssi_module
--without-http_userid_module       disable ngx_http_userid_module
--without-http_access_module       disable ngx_http_access_module
--without-http_auth_basic_module   disable ngx_http_auth_basic_module
--without-http_autoindex_module    disable ngx_http_autoindex_module
--without-http_geo_module          disable ngx_http_geo_module
--without-http_map_module          disable ngx_http_map_module
--without-http_split_clients_module disable ngx_http_split_clients_module
--without-http_referer_module      disable ngx_http_referer_module
--without-http_rewrite_module      disable ngx_http_rewrite_module
--without-http_proxy_module        disable ngx_http_proxy_module
--without-http_fastcgi_module      disable ngx_http_fastcgi_module
--without-http_uwsgi_module        disable ngx_http_uwsgi_module
--without-http_scgi_module         disable ngx_http_scgi_module
--without-http_memcached_module    disable ngx_http_memcached_module
--without-http_limit_conn_module   disable ngx_http_limit_conn_module
--without-http_limit_req_module    disable ngx_http_limit_req_module
--without-http_empty_gif_module    disable ngx_http_empty_gif_module
--without-http_browser_module      disable ngx_http_browser_module
--without-http_upstream_ip_hash_module
disable ngx_http_upstream_ip_hash_module
--without-http_upstream_least_conn_module
disable ngx_http_upstream_least_conn_module
--without-http_upstream_keepalive_module
disable ngx_http_upstream_keepalive_module
--with-http_perl_module            enable ngx_http_perl_module
--with-perl_modules_path=PATH      set Perl modules path
--with-perl=PATH                   set perl binary pathname
--http-log-path=PATH               set http access log pathname
--http-client-body-temp-path=PATH  set path to store
http client request body temporary files
--http-proxy-temp-path=PATH        set path to store
http proxy temporary files
--http-fastcgi-temp-path=PATH      set path to store
http fastcgi temporary files
--http-uwsgi-temp-path=PATH        set path to store
http uwsgi temporary files
--http-scgi-temp-path=PATH         set path to store
http scgi temporary files
--without-http                     disable HTTP server
--without-http-cache               disable HTTP cache
--with-mail                        enable POP3/IMAP4/SMTP proxy module
--with-mail_ssl_module             enable ngx_mail_ssl_module
--without-mail_pop3_module         disable ngx_mail_pop3_module
--without-mail_imap_module         disable ngx_mail_imap_module
--without-mail_smtp_module         disable ngx_mail_smtp_module
--with-google_perftools_module     enable ngx_google_perftools_module
--with-cpp_test_module             enable ngx_cpp_test_module
--add-module=PATH                  enable an external module
--with-cc=PATH                     set C compiler pathname
--with-cpp=PATH                    set C preprocessor pathname
--with-cc-opt=OPTIONS              set additional C compiler options
--with-ld-opt=OPTIONS              set additional linker options
--with-cpu-opt=CPU                 build for the specified CPU, valid values:
pentium, pentiumpro, pentium3, pentium4,
athlon, opteron, sparc32, sparc64, ppc64
--without-pcre                     disable PCRE library usage
--with-pcre                        force PCRE library usage
--with-pcre=DIR                    set path to PCRE library sources
--with-pcre-opt=OPTIONS            set additional build options for PCRE
--with-pcre-jit                    build PCRE with JIT compilation support
--with-md5=DIR                     set path to md5 library sources
--with-md5-opt=OPTIONS             set additional build options for md5
--with-md5-asm                     use md5 assembler sources
--with-sha1=DIR                    set path to sha1 library sources
--with-sha1-opt=OPTIONS            set additional build options for sha1
--with-sha1-asm                    use sha1 assembler sources
--with-zlib=DIR                    set path to zlib library sources
--with-zlib-opt=OPTIONS            set additional build options for zlib
--with-zlib-asm=CPU                use zlib assembler sources optimized
for the specified CPU, valid values:
pentium, pentiumpro
--with-libatomic                   force libatomic_ops library usage
--with-libatomic=DIR               set path to libatomic_ops library sources
--with-openssl=DIR                 set path to OpenSSL library sources
--with-openssl-opt=OPTIONS         set additional build options for OpenSSL
--with-debug                       enable debug logging

 

选择相对应的功能编译

./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

nginx 的主配文件

vi /usr/local/nginx/etc/nginx.conf

 

nginx -t #检测语法
nginx #运行nginx
nginx -s reload #重载主配置文件
nginx -s stop #关闭nginx

 

 

由上写了一个nginx的启动脚本放在/etc/init.d/目录下

#!/bin/bash
# nginx        Startup script for the nginx  Server
#chkconfig: 345 85 15
#description: nginx
# Source function library.
. /etc/rc.d/init.d/functions
nginx=${NGINX-/usr/local/lnmp/nginx/sbin/nginx}
pidfile=${PIDFILE-/usr/local/lnmp/nginx/logs/nginx.pid}
RETVAL=0
STOP_TIMEOUT=${STOP_TIMEOUT-10}
prog=nginx
NET=`netstat -antple | grep 80 |awk -F '[ :]+' '{print $5}'|wc -l`
start() {
echo -n $"Starting $prog: "
$nginx -t &>/dev/null
if [ $? -ne 0 ];then
action "this nginx.conf have something worry!" /bin/false
exit
fi
if [  -e $profile ]&&[ $NET -eq 1 ];then
echo "$prog is alreay started!"
else
$nginx
action "....." /bin/true
fi
}
stop() {
echo -n $"Stopping $prog: "
if [ ! -e $profile ] && [ $NET -ne 1 ];then
echo "the nginx is stoped"
else
$nginx -s stop
action "....." /bin/true
if [ -e $profile ];then
rm -fr $profile
fi
fi
}
reload() {
echo -n $"Reloading $prog: "
$nginx -t 1>/dev/null
if [ $? -ne 0 ];then
action "the nginx.conf have something worry!" /bin/false
exit
fi
$nginx -s reload
action "...." /bin/true
}
status() {
if [  -e $profile ]&&[ $NET -eq 1 ];then
echo "the nginx is running......"
else
echo "the nginx is stoped!"
fi
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status
;;
force-reload|reload)
reload
;;
*)
echo $"Usage: $prog {start|stop|force-reload|reload|status|}"
RETVAL=2
esac
exit $RETVAL

设置开机自启动

 

chkconfig -add nginx
chkconfig nginx on