入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

Centos7下安装Nginx

创建时间:2017-05-08 投稿人: 浏览次数:315

1.环境安装

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel


2.编译安装

需要创建/var/temp/nginx及/usr/local/nginx两个目录,程序会被安装在/opt/nginx目录下

mkdir -p /var/temp/nginx

mkdir -p /usr/local/nginx

  • tar -zxvf nginx-1.11.6.tar.gz

  • cd nginx-1.11.6

./configure 
--prefix=/opt/nginx 
--pid-path=/usr/local/nginx/nginx.pid 
--lock-path=/var/lock/nginx.lock 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--with-http_gzip_static_module 
--http-client-body-temp-path=/var/temp/nginx/client 
--http-proxy-temp-path=/var/temp/nginx/proxy 
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
--http-scgi-temp-path=/var/temp/nginx/scgi 
--with-stream
  • make
  • make install

3.配置成服务并且设置为开机自启动

  • vim /etc/init.d/nginx
    #注意:修改PATH和NAME字段, 匹配自己的安装路径
#! /bin/bash
# chkconfig: - 85 15
PATH=/opt/nginx
DESC="nginx daemon"
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=/usr/local/nginx/nginx.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -n "nginx already running"
}
do_stop() {
$DAEMON -s stop || echo -n "nginx not running"
}
do_reload() {
$DAEMON -s reload || echo -n "nginx can"t reload"
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
do_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
do_stop
echo "."
;;
reload|graceful)
echo -n "Reloading $DESC configuration..."
do_reload
echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"
do_stop
do_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0
  • 设置执行权限
    chmod a+x /etc/init.d/nginx
  • 注册成服务
    chkconfig --add nginx
  • 设置开机启动
    chkconfig nginx on
  • 启动/停止/重启
systemctl start nginx.service       #启动nginx服务
systemctl stop nginx.service        #停止nginx服务  
systemctl restart nginx.service     #重启nginx服务
systemctl reload nginx.service      #重新读取nginx配置(不用停止nginx服务就能使修改的配置生效)

4.配置参考


user  nginx;
worker_processes  4;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    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"";

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #隐藏版本号
    server_tokens off;

    proxy_intercept_errors on;
    proxy_set_header   Host             $host;
    proxy_set_header   Remote_Addr      $remote_addr;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

    gzip  on;

    server {
        listen       80;
        server_name  manager.abc.it;

        if ($host != "manager.abc.it") {
            return 403;
        }

        location / {
            proxy_pass http://manager;
        }

        error_page   502  /502.html;
        location = /502.html {
            root   html;
        }

        location ~ ^/favicon.ico$ {
            root  /usr/tomcat/manager/ROOT;
        }

        #使用 ~* 代表忽略大小写
        location ~* .*.(htm|html|ico|gif|bmp|jpg|jpeg|png|mp3|mid|wma|mp4|swf|flv|rar|zip|txt|doc|ppt|xls|pdf|css)$ {
           root /usr/dianzan/topic/htdoc;
           #expires 30d; #过期时间为30天
        }

    }

    server {
        listen       80;
        server_name  pay.abc.it;

        location / {
            proxy_pass http://pay;
        }

        location ~ ^/favicon.ico$ {
            root  /usr/tomcat/manager/ROOT;
        }

    }


    server {
        listen       80;
        server_name  upload.abc.it;

        location / {
            proxy_pass http://upload;
        }

        location ~ ^/favicon.ico$ {
            root  /usr/tomcat/manager/ROOT;
        }

        location ~ ^/upload/ {
            root /usr;
        }

    }


    server {
        listen       80;
        server_name  dubbo.abc.it;

        location / {
            proxy_pass http://dubbo;
        }

        location ~ ^/favicon.ico$ {
            root  /usr/tomcat/manager/ROOT;
        }

    }


    server {
        listen       80;
        server_name  wxserver.abc.it;

        location / {
            proxy_pass http://wxserver;
        }

        location ~ ^/favicon.ico$ {
            root  /usr/tomcat/manager/ROOT;
        }

    }


    upstream manager{
        server  127.0.0.1:8080;
    }


    upstream pay {
        server  127.0.0.1:8081;
    }


    upstream upload {
        server  127.0.0.1:8082;
    }


    upstream dubbo {
        server  127.0.0.1:8083;
    }


    upstream wxserver {
        server  127.0.0.1:8084;
    }

}

#tcp代理,通过nginx访问内网mysql
stream {
    upstream mysql {
        server 192.168.11.121:3306 max_fails=3 fail_timeout=30s;
    }

    server {
        listen 13306;
        proxy_timeout 3s;
        proxy_pass mysql;
    }

}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像