基于Centos7.2的nginx部署
admin
2023-01-24 17:01:03
0

基于Centos7.2的nginx部署


部署背景:使用Nginx作为Tomcat的负载平衡器。

部署步骤:

  1. 安装zlib-devel、pcre-devel等依赖包

    基于Centos7.2的nginx部署

    [root@nginx ~]#  yum install -y gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel

    注:结合proxy和upstream模块实现后端web负载均衡

    结合nginx默认自带的ngx_http_proxy_module模块 和ngx_http_upstream_module模块实现后端服务器的健康检查。

    Proxy:实现反向代理

    Upstream:实现负载均衡

    Nginx在使用HTTPS服务时要用到openssl-devel模块,如果不安装openssl相关包,安装Nginx的过程会报错。

  2. 创建nginx用户

    [root@nginx ~]# useradd -s /sbin/nologin www

    [root@nginx ~]# grep www /etc/passwd  ##查看nginx用户www是否建立

    www:x:1000:1000::/home/www:/sbin/nologin

  3. 编译安装nginx

    [root@nginx src]# tar -zxvf nginx-1.13.0.tar.gz

    [root@nginx src]# cd nginx-1.13.0

    [root@nginx nginx-1.13.0]# ./configure --prefix=/usr/local/nginx1.10 --user=www  --group=www --with-http_stub_status_module --with-http_realip_module --with-http_ssl_module --with-http_gzip_static_module --with-pcre --with-http_flv_module && make && make install

    其中:--prefix=/usr/local/nginx1.10表示nginx包安装路径

  4. 创建nginx软连接,方便nginx程序的执行

    [root@nginx nginx-1.13.0]# ln -s /usr/local/nginx1.10/sbin/nginx /usr/local/sbin/

  5. nginx语法检查

    [root@nginx nginx-1.13.0]# nginx -t

    基于Centos7.2的nginx部署

  6. 编写nginx服务脚本

    [root@nginx ~]# 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:      /usr/local/nginx1.10/conf/nginx.conf

    # pidfile:     /usr/local/nginx1.10/logs/nginx.pid


    nginxd=/usr/local/nginx1.10/sbin/nginx

    nginx_config=/usr/local/nginx1.10/conf/nginx.conf

    nginx_pid=/usr/local/nginx1.10/logs/nginx.pid

    RETVAL=0

    prog="nginx"



    # 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/sbin/nginx"

    prog=$(basename $nginx)


    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"


    lockfile=/var/lock/subsys/nginx


    start() {

        [ -x $nginx ] || exit 5

        [ -f $NGINX_CONF_FILE ] || exit 6

        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

        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

  7. 添加开机自启动服务

    [root@nginx ~]# chmod +x /etc/init.d/nginx

    [root@nginx ~]# chkconfig --add nginx

    [root@nginx ~]# chkconfig nginx on

    [root@nginx ~]# chkconfig --list |grep nginx

    nginx           0:off   1:off   2:on    3:on    4:on    5:on    6:off

  8. 启动nginx服务

    [root@nginx ~]# /usr/local/sbin/nginx start

    nginx: invalid option: "start"

    [root@nginx ~]# /etc/init.d/nginx start

    Starting nginx (via systemctl):  Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

                                                               [FAILED]

    基于Centos7.2的nginx部署

    以上我们可以看出,nginx启动失败!以下是解决方法:

    [root@nginx ~]# /usr/local/sbin/nginx

    [root@nginx ~]# /etc/init.d/nginx start

    Starting nginx (via systemctl):                            [  OK  ]

    基于Centos7.2的nginx部署

    基于Centos7.2的nginx部署

  9. 配置nginx反向代理:作用是(反向代理+负载均衡+健康探测)

    修改nginx主配置文件:

    [root@nginx ~]# vim /usr/local/nginx1.10/conf/nginx.conf


    user  www www;

    worker_processes     2;

    worker_cpu_affinity 0101 1010;

    error_log  logs/error.log;

    #error_log  logs/error.log  notice;

    #error_log  logs/error.log  info;

    worker_rlimit_nofile 10240;

    pid        logs/nginx.pid;

    events{

    use epoll;

    worker_connections  4096;

    }

    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;

    server_tokens off;

    sendfile        on;

    tcp_nopush     on;

        #keepalive_timeout  0;

    keepalive_timeout  65;

        #Compression Settings

    gzip on;

    gzip_comp_level 6;

    gzip_http_version 1.1;

    gzip_proxied any;

    gzip_min_length 1k;

    gzip_buffers 16 8k;

    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascriptapplication/xml;

    gzip_vary on;

        #end gzip

        # http_proxy Settings

    client_max_body_size   10m;

    client_body_buffer_size   128k;

    proxy_connect_timeout   75;

    proxy_send_timeout   75;

    proxy_read_timeout   75;

    proxy_buffer_size   4k;

    proxy_buffers   4 32k;

    proxy_busy_buffers_size   64k;

    proxy_temp_file_write_size  64k;

        #load balance Settings

    upstream backend_tomcat {

    server 192.168.100.126:8080 weight=1 max_fails=2 fail_timeout=10s;    ##需要更改为tomcat的ip

    server 192.168.100.127:8080 weight=1 max_fails=2 fail_timeout=10s;    ##需要更改为tomcat的ip

        }

        #virtual host Settings

    server{

    listen       80;

    server_name  www.benet.com;

    charset utf-8;

    location / {

    root html;

    index  index.jsp index.html index.htm;

            }

    location ~* \.(jsp|do)$ {

    proxy_pass  http://backend_tomcat;

    proxy_redirect off;

    proxy_set_header Host $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;

            }

    location /nginx_status {

    stub_status on;

    access_log off;

    allow 192.168.100.0/24;    ##需要更改tomcat的ip段

    deny all;

            }

        }

    }

  10. 重启使其生效

    [root@nginx conf]# /usr/local/sbin/nginx

    [root@nginx conf]# service nginx restart

    Restarting nginx (via systemctl):                          [  OK  ]

  11. [root@nginx ~]# firewall-cmd --permanent --add-port=80/tcp

    success

    [root@nginx ~]# firewall-cmd --reload

    success

    基于Centos7.2的nginx部署


以上就是nginx部署的基本步骤!


扩展:

除了nginx语法检查nginx安装和浏览是否正常外,还有两种常用的方法:

1.使用wget命令检查

[root@nginx ~]# wget 127.0.0.1

基于Centos7.2的nginx部署

2.使用curl命令检查

[root@nginx ~]# curl 127.0.0.1

基于Centos7.2的nginx部署

相关内容

热门资讯

外国男子在云南跳伞,半空迟迟不... 近日,有视频显示,一名外国男子背着降落伞从玻璃栈道上跳入峡谷,栈道上有游客拍照鼓掌。男子跳下后,以高...
美国人开始在直播间里“抢”东西... 作者 | 竹芒今年夏天,许多美国消费者的手机屏幕上,出现了这样一幅画面:倒计时十五秒,一件商品的价格...
伊朗连炸20座机库,造成数十名... 伊朗公布重大战果。伊朗WANA通讯社转引伊朗伊斯兰革命卫队第31号声明称,在“胜利2号行动”第21轮...
台军战备水一瓶预算新台币120... 海峡导报综合报道 国民党民代马文君表示,台防务主管部门原先将战备饮用水每瓶预算编列120元(新台币,...
外国人拥入,“中国人活在205... 作者 | 贺一 编辑 | 张来国内正式入伏,入境游也在持续升温。最近,“外国游客来中国避暑”的说法在...
BMS的留白,诺诚健华的窗口 文|锦缎 7月15日,诺诚健华宣布,其自主研发的新一代高选择性口服TYK2抑制剂Soficitin...
全球首款AI智能体手机努比亚N... IT之家 7 月 22 日消息,博主 @熊猫很禿然 今日曝光了全球首款 AI 智能体手机努比亚 Na...
格美粉末取得带自清洗功能搅拌罐... 国家知识产权局信息显示,厦门格美粉末涂料有限公司取得一项名为“一种带自清洗功能的搅拌罐”的专利,授权...
农行员工被指长期从事“冲贷”集... 近日,重庆多位市民向国家金融监督管理总局重庆监管局递交实名举报材料,反映中国农业银行重庆合川支行在职...
中美高层在东盟外长会上的互动,... 中美高层在东盟会议场边举行会晤,本次互动释放了怎样的信号?凤凰卫视连线台湾政治评论员赖岳谦进行点评解...