基于Centos7.2的nginx部署

基于Centos7.2的nginx部署

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

部署步骤:

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

    [[email protected] ~]#  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:实现负载均衡

  2. 创建nginx用户

    [[email protected] ~]# useradd -s /sbin/nologin www

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

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

  3. 编译安装nginx

    [[email protected] src]# tar -zxvf nginx-1.13.0.tar.gz

    [[email protected] src]# cd nginx-1.13.0

    [[email protected] 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程序的执行

    [[email protected] nginx-1.13.0]# ln -s /usr/local/nginx1.10/sbin/nginx /usr/local/sbin/

  5. nginx语法检查

    [[email protected] nginx-1.13.0]# nginx -t

  6. 编写nginx服务脚本

    [[email protected] ~]# 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. 添加开机自启动服务

    [[email protected] ~]# chmod +x /etc/init.d/nginx

    [[email protected] ~]# chkconfig --add nginx

    [[email protected] ~]# chkconfig nginx on

    [[email protected] ~]# chkconfig --list |grep nginx

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

  8. 启动nginx服务

    [[email protected] ~]# /usr/local/sbin/nginx start

    nginx: invalid option: "start"

    [[email protected] ~]# /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]

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

    [[email protected] ~]# /usr/local/sbin/nginx

    [[email protected] ~]# /etc/init.d/nginx start

    Starting nginx (via systemctl):                            [  OK  ]

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

    修改nginx主配置文件:

    [[email protected] ~]# 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. 重启使其生效

    [[email protected] conf]# /usr/local/sbin/nginx

    [[email protected] conf]# service nginx restart

    Restarting nginx (via systemctl):                          [  OK  ]

  11. [[email protected] ~]# firewall-cmd --permanent --add-port=80/tcp

    success

    [[email protected] ~]# firewall-cmd --reload

    success

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

时间: 2024-11-04 04:49:23

基于Centos7.2的nginx部署的相关文章

基于Centos7的cobbler批量化部署

图为开源自动化运维体系链 1.cobbler实现自动装机 2.saltstack实现工程自动化配置 3.kubernetes实现容器自动化编排 4.zabbix实现自动化监控 5.elastic实现应用日志自动化收集 6.jenkins实现开发持续化交付 原理分析 cobbler简介 Cobbler通过将设置和管理一个安装服务器所涉及的任务集中在一起,从而简化了系统配置.相当于Cobbler封装了DHCP.TFTP.XINTED等服务,结合了PXE.kickstart等安装方法,可以实现自动化安

ansible 部署基于centos7+docker+nginx+openssl+v2版私有仓库

ansible 部署基于centos7+docker.1.12+nginx+openssl+v2版私有仓库 1.申请域名证书不做详细教程网络上很多 2.ansible-playbook 结构 . ├── hosts # 需要安装服务器IP地址 ├── roles │   ├── docker │   │   ├── defaults │   │   ├── files │   │   │   └── dockerkey #证书 文件加 │   │   │       ├── domain.crt

MogileFS + Nginx 实现基于CentOS7平台的分布式文件存储与访问

MogileFS是一个开源的分布式文件系统,Nginx是开源的4-7层web应用服务端以及反向代理服务端.本文基于CentOS7平台,进行MogileFS + Nginx的部署 MogileFS的一些注意事项 针对于MogileFS,有如下概念需要注意一下. MogileFS属于有中心节点形式的分布式文件系统,元数据默认存储在关系型数据库(MySQL)当中,在此处于单点,因此有必要对MySQL使用主从复制或者MHA. 按功能分为tracker,database,storage.其中tracker

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务

Linux平台(Centos7)-lnmp一键式部署mysql,nginx,php,php-fpm服务 1. 部署方式1:手动部署. 6 1.1. 配置防火墙. 6 1.2. 关闭firewall 6 1.3. 安装iptables防火墙. 6 1.4. 安装Apache 7 1.5. 安装MariaDB 9 1.5.1. 安装MariaDB 9 1.5.2. 启动服务. 10 1.5.3. 设置开机启动. 10 1.5.4. 为root账户设置密码. 11 1.5.5. 重启MariaDB 1

Centos7.2下Nginx配置SSL支持https访问(站点是基于.Net Core2.0开发的WebApi)

准备工作 1.基于nginx部署好的站点(本文站点是基于.Net Core2.0开发的WebApi,有兴趣的同学可以跳http://www.cnblogs.com/GreedyL/p/7422796.html) 2.证书颁发机构(CA)颁发的有效证书,其中我们需要两个文件,一个是 .key文件(私钥),另一个是 .crt或.pem文件(公钥) 核心功能 ? 通过指定由受信任的证书颁发机构(CA)颁发的有效证书,将服务器配置为侦听端口上的HTTPS流量. ? 通过配置nginx.conf文件来加强

基于CentOS7安装部署 Oracle 12c ?

基于CentOS7安装部署 Oracle 12c 简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一.Oracle数据库最新版本为Oracle Database 12c.Oracle数据库12c 引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云. 特点 1.完整的数据管理功能: 1)数据的大量性 2)数据的保存的持久性 3)

[oracle部署实施] 基于centos7静默安装oracle 11gr2单实例数据库

基于centos7静默安装oracle 11gr2单实例数据库 1.vmware最小化安装centos7 分配20G硬盘+2G内存+nat网络 400mboot+4Gswap 去除kdump 最小化安装 并配置网络cat /etc/sysconfig/network-scripts/ifcfg-ens32BOOTPROTO="static"DEVICE="ens32"ONBOOT="yes"IPADDR=192.168.188.11NETMASK

backuppc安装部署(基于Centos7)

Backuppc是一款非常简单好用的开源备份系统,可以用来备份Windows.linux操作系统,也可以用来备份业务数据,数据库:今天给大家介绍下我的安装过程: 一. backuppc的安装配置(基于centos7.3) 安装epel-release源yum install epel-release 安装backuppc和依赖包yum install backuppc nfs-utils nfs-utils-lib bzip2systemctl restart backuppc.service

基于CentOS7上的搭建javaweb环境 - 学习笔记

一, 概述 上一篇记录了安装CentOS7的基本步骤及配置,现在要讲如何搭建基于CentOS7环境的javaweb环境了,我以 mysql + jdk1.8.0_91 + apache tomcat7.0.69 为例进行讲述. 二, 安装步骤 1, 首先在CentOS7下在线安装mysql数据库服务 (1)先查看是否已安装了mysql rpm -qa | grep mysql (2)若安装了,可以卸载,再重新安装 yum -y remove mysqlxxxxx (3)安装 yum -y ins