zoukankan      html  css  js  c++  java
  • CentOs7安装nginx

    一、安装编译工具及库文件

    yum -y install make zlib zlib-devel gcc-c++ libtool  openssl openssl-devel
    

     二、首先要安装 PCRE

    PCRE 作用是让 Nginx 支持 Rewrite 功能。

    1、下载 PCRE 安装包,(版本可以自己选择)下载地址: http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

    [root@bogon src]# cd /usr/local/src/
    [root@bogon src]# wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
    

     2、解压安装包:

    [root@bogon src]# tar zxvf pcre-8.35.tar.gz
    

     3、进入安装包目录

    [root@bogon src]# cd pcre-8.35
    

     4、编译安装 

    [root@bogon pcre-8.35]# ./configure
    [root@bogon pcre-8.35]# make && make install
    

     5、查看pcre版本

    [root@bogon pcre-8.35]# pcre-config --version
    

     安装nginx

    1、下载和解压nginx

    [root@bogon src]# cd /usr/local/src/
    [root@bogon src]# wget http://nginx.org/download/nginx-1.6.2.tar.gz
    [root@bogon src]# tar zxvf nginx-1.6.2.tar.gz
    

    2、进入安装包目录

    [root@bogon src]# cd nginx-1.6.2
    

     4、编译安装

    [root@bogon nginx-1.6.2]# ./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35
    [root@bogon nginx-1.6.2]# make
    [root@bogon nginx-1.6.2]# make install
    

     5、查看nginx版本

    [root@bogon nginx-1.6.2]# /usr/local/webserver/nginx/sbin/nginx -v
    

     Nginx 配置

    创建 Nginx 运行使用的用户 www:

    [root@bogon conf]# /usr/sbin/groupadd www 
    [root@bogon conf]# /usr/sbin/useradd -g www www
    

     配置nginx.conf ,将/usr/local/webserver/nginx/conf/nginx.conf替换为以下内容(替换之前最好备份原文件)

    [root@bogon conf]#  vim /usr/local/webserver/nginx/conf/nginx.conf
    user www www;
    worker_processes 2;
    error_log /usr/local/webserver/nginx/logs/nginx_error.log crit; 
    pid /usr/local/webserver/nginx/nginx.pid;#如果启动报错将路径改为 /run/nginx.pid
    
    worker_rlimit_nofile 65535;
    events
    {
      use epoll;
      worker_connections 65535;
    }
    http
    {
      include mime.types;
     include ip.black; //设置ip黑名单 格式 deny ip; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; 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 128k; 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; server { listen 80; server_name test.tp_tag.com; index index.html index.htm index.php; root /wwwroot/tp_tag/public; location ~ .*.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 15d; } access_log off; } server { listen 80; server_name test.tp5.com; index index.html index.htm index.php; root /wwwroot/tp5/public; location ~ .*.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 15d; } access_log off; } server { listen 80; server_name test.new_tp.com; index index.html index.htm index.php; root /wwwroot/tp5.1/public; location ~ .*.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+.php)(/?.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location / { if (!-e $request_filename) { rewrite ^/index.php(.*)$ /index.php?s=$1 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ .*.(gif|jpg|jpeg|png|bmp|swf|ico)$ { expires 30d; } location ~ .*.(js|css)?$ { expires 15d; } access_log off; } }

     检查配置文件nginx.conf的正确性命令:

    [root@bogon conf]# /usr/local/webserver/nginx/sbin/nginx -t
    

     配置nginx环境变量

    [root@bogon conf]# vim /etc/profile
    

     在文件结尾加上

    PATH=$PATH:/usr/local/webserver/nginx/sbin
    export PATH
    

     刷新文件

    [root@bogon conf]# source /etc/profile
    

    四、编辑nginx启动脚本,并加入系统服务

    1、vim /etc/init.d/nginx  //写入如下内容

    #!/bin/sh
    #
    # nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  NGINX is an HTTP(S) server, HTTP(S) reverse
    #               proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /etc/nginx/nginx.conf
    # config:      /etc/sysconfig/nginx
    # pidfile:     /var/run/nginx.pid
    # Source function library.
    . /etc/rc.d/init.d/functions
    # Source networking configuration.
    . /etc/sysconfig/network
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
    nginx="/usr/local/webserver/nginx/sbin/nginx"
    prog=$(basename $nginx)
    NGINX_CONF_FILE="/usr/local/webserver/nginx/conf/nginx.conf"
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
    lockfile=/var/lock/subsys/nginx
    make_dirs() {
       # make required directories
       user=`$nginx -V 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=([^ ]*).*/1/g' -`
       if [ -z "`grep $user /etc/passwd`" ]; then
           useradd -M -s /bin/nologin $user
       fi
       options=`$nginx -V 2>&1 | grep 'configure arguments:'`
       for opt in $options; do
           if [ `echo $opt | grep '.*-temp-path'` ]; then
               value=`echo $opt | cut -d "=" -f 2`
               if [ ! -d "$value" ]; then
                   # echo "creating" $value
                   mkdir -p $value && chown -R $user $value
               fi
           fi
       done
    }
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        make_dirs
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
    force_reload() {
        restart
    }
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
    rh_status() {
        status $prog
    }
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac

    2、chmod 755 /etc/init.d/nginx

    3、chkconfig --add nginx

    (如果想开机启动nginx,请执行如下命令)

    chkconfig nginx on

    六、启动nginx

    service nginx start

    七、重新加载配置文件

    nginx -s reload

    八、设置ip不能访问

    server {
          listen 80 default_server;
          server_name _; #_并不重要
          return 403;
    }
    
  • 相关阅读:
    BEC listen and translation exercise 44
    中译英12
    BEC listen and translation exercise 43
    中译英11
    BEC listen and translation exercise 42
    中译英10
    BEC listen and translation exercise 41
    中译英9
    BEC listen and translation exercise 40
    中译英8
  • 原文地址:https://www.cnblogs.com/pcx105/p/9488002.html
Copyright © 2011-2022 走看看