一、环境
系统:CentOS 6.4x64位最小化安装
nginx-m:192.168.3.23
nginx-s:192.168.3.24
vip: 192.168.3.25
二、安装nginx
在nginx-m和nginx-s安装nginx,这里使用脚本安装,脚本内容如下
#!/bin/bash cur_dir=$(pwd) NGINXVERSION=‘nginx-1.6.0‘ export LANG=zh_CN.UTF-8 #Source function library. . /etc/init.d/functions create_nginx_conf(){ cat >>/usr/local/nginx/conf/nginx.conf<<EOF user www www; worker_processes auto; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; multi_accept on; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 50m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 256k; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\."; #limit_conn_zone \$binary_remote_addr zone=perip:10m; ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section. server_tokens off; #log format log_format access ‘\$remote_addr - \$remote_user [\$time_local] "\$request" ‘ ‘\$status \$body_bytes_sent "\$http_referer" ‘ ‘"\$http_user_agent" \$http_x_forwarded_for‘; server { listen 80 default; #listen [::]:80 default ipv6only=on; server_name www.myweb.com; index index.html index.htm index.php; root /var/www/default; #error_page 404 /404.html; location ~ [^/]\.php(/|$) { # comment try_files \$uri =404; to enable pathinfo try_files \$uri =404; fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_index index.php; include fastcgi.conf; #include pathinfo.conf; } location /nginx_status { stub_status on; access_log off; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)\$ { expires 30d; } location ~ .*\.(js|css)?\$ { expires 12h; } access_log /var/www/wwwlogs/access.log access; } include vhost/*.conf; } EOF } create_nginx_init(){ cat >>/etc/init.d/nginx<<EOF #! /bin/sh # chkconfig: 2345 55 25 # Description: Startup script for nginx webserver on Debian. Place in /etc/init.d and # run ‘update-rc.d -f nginx defaults‘, or use the appropriate command on your # distro. For CentOS/Redhat run: ‘chkconfig --add nginx‘ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin NAME=nginx NGINX_BIN=/usr/local/nginx/sbin/\$NAME CONFIGFILE=/usr/local/nginx/conf/\$NAME.conf PIDFILE=/usr/local/nginx/logs/\$NAME.pid SCRIPTNAME=/etc/init.d/\$NAME case "\$1" in start) echo -n "Starting \$NAME... " if netstat -tnpl | grep -q nginx;then echo "\$NAME (pid \`pidof \$NAME\`) already running." exit 1 fi \$NGINX_BIN -c \$CONFIGFILE if [ "\$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; stop) echo -n "Stoping \$NAME... " if ! netstat -tnpl | grep -q nginx; then echo "\$NAME is not running." exit 1 fi \$NGINX_BIN -s stop if [ "\$?" != 0 ] ; then echo " failed. Use force-quit" exit 1 else echo " done" fi ;; status) if netstat -tnpl | grep -q nginx; then PID=\`pidof nginx\` echo "\$NAME (pid \$PID) is running..." else echo "\$NAME is stopped" exit 0 fi ;; force-quit) echo -n "Terminating \$NAME... " if ! netstat -tnpl | grep -q nginx; then echo "\$NAME is not running." exit 1 fi kill \`pidof \$NAME\` if [ "\$?" != 0 ] ; then echo " failed" exit 1 else echo " done" fi ;; restart) \$SCRIPTNAME stop sleep 1 \$SCRIPTNAME start ;; reload) echo -n "Reload service \$NAME... " if netstat -tnpl | grep -q nginx; then \$NGINX_BIN -s reload echo " done" else echo "\$NAME is not running, can‘t reload." exit 1 fi ;; configtest) echo -n "Test \$NAME configure files... " \$NGINX_BIN -t ;; *) echo "Usage: \$SCRIPTNAME {start|stop|force-quit|restart|reload|status|configtest}" exit 1 ;; esac EOF } #install_nginx install_nginx(){ cd $cur_dir yum install make gcc gcc-c++ openssl-devel -y #add user www for nginx id www &>/dev/null if [ $? -ne 0 ];then groupadd www useradd -s /sbin/nologin -g www www fi wget http://sourceforge.net/projects/pcre/files/pcre/8.30/pcre-8.30.tar.gz/download if [ $? -ne 0 ];then echo "download pcre package is fail" exit $? fi tar xf pcre-8.30.tar.gz cd pcre-8.30 ./configure make && make install if [ $? -eq 0 ];then echo "install pcre is successful!!!" else echo "install pcre is fail!!!" exit $? fi echo "/usr/local/lib/" >>/etc/ld.so.conf ldconfig #download nginx package cd $cur_dir wget http://mirrors.sohu.com/nginx/$NGINXVERSION.tar.gz if [ $? -ne 0 ];then echo "download nginx is fail!!!" exit $? fi tar xf $NGINXVERSION.tar.gz cd $NGINXVERSION ./configure --user=www --group=www --prefix=/usr/local/$NGINXVERSION --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 make && make install if [ $? -ne 0 ];then echo "install nginx fail!!!" exit $? fi #links ln -s /usr/local/$NGINXVERSION /usr/local/nginx ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak #create file nginx.conf create_nginx_conf mkdir -p /var/www/default chmod +w /var/www/default mkdir -p /var/www/wwwlogs chmod 777 /var/www/wwwlogs chown -R www:www /var/www/default cp /usr/local/nginx/html/index.html /var/www/default/index.html #create start scripts for nginx create_nginx_init chmod +x /etc/init.d/nginx chkconfig --add nginx chkconfig nginx on /etc/init.d/nginx start if [ $? -eq 0 ];then action "start nginx" /bin/true echo "+---------------------------------+" echo "+------nginx install done--------+" echo "+---------------------------------+" fi } install_nginx
在iptables中对80端口进行放行
[root@nginx-m ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@nginx-m ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@nginx-m ~]# echo "nginx-m 23" >/var/www/default/index.html [root@nginx-m ~]# curl http://192.168.3.23 nginx-m 23
nginx-s的配置相同,只有主页内容不一样
[root@nginx-s ~]# echo "nginx-s 24" >/var/www/default/index.html [root@nginx-s ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@nginx-s ~]# service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] [root@nginx-s ~]# curl http://192.168.3.24 nginx-s 24
本文出自 “ly36843运维” 博客,请务必保留此出处http://ly36843.blog.51cto.com/3120113/1657265
原文:http://ly36843.blog.51cto.com/3120113/1657265