`
liuxingguome
  • 浏览: 26101 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

CentOS安装配置nginx1.20并设置开机启动

 
阅读更多
yum -y install gcc-c++  pcre pcre-devel zlib zlib-devel openssl openssl-devel
yum -y install gcc automake autoconf libtool make

Ubuntu上可以这样安装
sudo aptitude install libdmalloc-dev libcurl4-openssl-dev libpcre3-dev libjemalloc-dev make gcc openssl-dev


安装tengine
(下载的包都放在soft文件夹里面)
(--with-http_stub_status_module --with-http_concat_module 也可省去)
wget http://tengine.taobao.org/download/tengine-2.1.0.tar.gz
tar -xzvf tengine-2.1.0.tar.gz
cd tengine-2.1.0
./configure --prefix=/usr/tengine --with-http_stub_status_module --with-http_concat_module

nginx1.20
./configure --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-sticky --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module --add-module=/root/nginx_upstream_check_module-master


make
make install

创建用户组和用户

groupadd www
useradd -g www www
编辑主配置文件

vi /usr/local/nginx/conf/nginx.conf

user www www;   #指定运行的用户和用户组
worker_processes  4;    #指定要开启的进程数,一般为CPU的核心数或两倍
error_log  logs/error.log  crit;        #全局日志 debug|info|notice|warn|error|crit
pid        logs/nginx.pid;      #指定进程id的存储文件位置
worker_rlimit_nofile 65535;

events {
    use epoll;  #对于Linux系统epoll工作模式是首选
    worker_connections  65536;  #每个进程的最大连接数
    #在执行操作系统命令"ulimit -n 65536"后worker_connections的设置才能生效
}


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;
    charset  utf-8;

    server_names_hash_bucket_size 256;
    client_header_buffer_size 32k;
    large_client_header_buffers 4 128k; #最大缓存为4个128KB
    client_max_body_size 20m;   #允许客户端请求的最大的单个文件字节数

    sendfile on;        #开启高效文件传输模式
    tcp_nopush on;      #用于防止网络阻塞
    tcp_nodelay on;     #用于防止网络阻塞

    keepalive_timeout  60;      #超过这个时间之后服务器会关闭该连接
    client_header_timeout 10;   #客户端请求头读取超时时间,超过这个时间客户端还没发数据NGINX就返回408错误
    client_body_timeout 10;     #客户端请求主体读取超时时间,超过这个时间客户端还没发数据NGINX就返回408错误

    server_tokens on;   #不显示nginx版本信息

    include gzip.conf;  #HttpGzip的配置文件
    include proxy.conf; #配置代理文件
    include vhost.conf; #虚拟主机的配置文件
    include backend.conf;       #配置后端的服务器列表文件

}

limit_req_zone $binary_remote_addr zone=req_one:10m rate=1r/s;
#10m是会话状态存储空间 rate=1r/s是每个地址每秒只能请求一次   (在vhost.conf还有配置)
limit_conn_zone $binary_remote_addr zone=req_one:10m;
#设置IP并发  (在vhost.conf还有配置)
编辑HttpGzip的配置文件

vi /usr/local/nginx/conf/gzip.conf



gzip on;
gzip_min_length 1k;     #设置允许压缩的页面最小字节数。
gzip_buffers 4 16k;     #用来存储gzip的压缩结果
gzip_http_version 1.1;  #识别HTTP协议版本
gzip_comp_level 2;      #设置gzip的压缩比 1-9 1压缩比最小但最快 9相反
gzip_types text/plain application/x-javascript text/css application/xml;        #指定压缩类型
gzip_proxied any;       #无论后端服务器的headers头返回什么信息,都无条件启用压缩
gzip_vary on;
gzip_disable "MSIE [1-6].";     #禁用IE6的gzip压缩
复制代码
编辑代理文件

vi /usr/local/nginx/conf/proxy.conf



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;
client_body_buffer_size  512k;
proxy_connect_timeout 30;
proxy_read_timeout 30;
proxy_send_timeout 30;
proxy_buffer_size 32k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;

编辑虚拟主机的配置文件

vi /usr/local/nginx/conf/vhost.conf



server {
    listen 80;
    server_name localhost;
    index index.jsp index.htm index.html;
    root /usr/local/tomcat7/webapps/ROOT;

    location / {
        proxy_pass http://backend;
        proxy_pass_header Set-Cookie;
    }

    location /NginxStatus {
        stub_status on;
        access_log off;
        auth_basic "NginxStatus";
    }
}

location ~ .*\.(zip|thumb)$ {
        root /usr/local/download;
    limit_conn req_one 1;    #IP下载并发为1  req_one在nginx.conf中配置的 limit_conn_zone $binary_remote_addr zone=req_one:10m;
        limit_rate 500k;        #限速500k
        expires 30d;
    }

limit_req zone=req_one burst=100; #req_one在nginx.conf中有配置,当超过rate时请求就会放到burst中burst也满了就503 req_one在nginx.conf中配置的 llimit_req_zone $binary_remote_addr zone=req_one:10m rate=100r/s;

limit_rate_after 3m;
limit_rate 512k;    这两句话的意思是先以最快的速度下载3MB,然后再以512KB的速度下载。

将扩展名为zip,thumb的静态文件都交给Nginx处理,root为静态文件的目录,而expires用为指定静态文件的过期时间30天。

location ~ ^/(upload|download)/ {
        root /usr/local;
        expires 30d;
}

将upload,download下的所有文件都交给Nginx处理,upload和download目录包含在/usr/local目录中



编辑后端的服务器列表文件

vi /usr/local/nginx/conf/backend.conf


upstream backend {
    ip_hash;
    server 127.0.0.1:8080 max_fails=1 fail_timeout=60s;
}


4、设置Tengine开机启动

vi /etc/rc.d/init.d/nginx



#!/bin/bash
# Tengine Startup script# processname: nginx
# chkconfig: - 85 15
# description: nginx is a World Wide Web server. It is used to serve
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/tengine/sbin/nginx
nginx_config=/usr/tengine/conf/nginx.conf
nginx_pid=/usr/tengine/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
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
rm -f /var/lock/subsys/nginx /usr/tengine/logs/nginx.pid
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/tengine/logs/nginx.pid
}
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;

status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL


chmod 775 /etc/rc.d/init.d/nginx   #赋予文件执行权限
chkconfig  --level 012345 nginx on   #设置开机启动
service nginx start




tengine反向代理数据库过程:
安装:
下载tengine-2.3.2.tar.gz
./configure --prefix=/http/tengine --with-http_stub_status_module  --with-stream

./configure --prefix=/usr/tengine --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module  --with-http_v2_module --add-module=modules/ngx_http_upstream_session_sticky_module --add-module=modules/ngx_http_concat_module

nginx1.20.2
http://nginx.org/en/download.html
./configure --prefix=/usr/nginx --with-http_stub_status_module --with-http_ssl_module --add-module=/root/nginx-sticky --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module --add-module=/root/nginx_upstream_check_module-master



make
make install

配置文件:
1、Nginx配置Oracle代理
#user  nobody;
worker_processes  1;

#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;
}
stream {
    upstream oracle {  
        server 172.16.10.222:1521 weight=1 max_fails=2 fail_timeout=30s;  
    }
server {
        listen       3335;
        proxy_connect_timeout 1s;
        proxy_timeout 3s;
        proxy_pass oracle;
    }
}
2、Nginx配置MySql代理
Nginx 配置mysql代理 -- 基于nginx1.9以上 stream module,stream 模块用于一般的 TCP 代理和负载均衡。

#user  nobody;
worker_processes  1;

#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;
}

stream {
    upstream sql {  
        server 172.16.10.229:3306 weight=1 max_fails=2 fail_timeout=30s;  
    }
    server {
       listen     3333;
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass sql;
    }
}
3、Nginx配置SqlServer代理
#user  nobody;
worker_processes  1;

#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;
}

stream {
   
    upstream sqlserver {  
        server 172.16.10.167:1433 weight=1 max_fails=2 fail_timeout=30s;  
    }
  
    server {
       listen       3334;
       proxy_connect_timeout 1s;
       proxy_timeout 3s;
       proxy_pass sqlserver;
    }
}
4、最后是Nginx代理WebService的配置
#user  nobody;
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;

    upstream esbServer {  
        server 127.0.0.1:8083 weight=1 max_fails=2 fail_timeout=30s;  
    }

    #gzip  on;

    server {
        listen       8081;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /ladder_web {
            proxy_set_header X-real-ip $remote_addr;
            proxy_pass http://esbServer;
        }
    }
}








分享到:
评论

相关推荐

    centos8 nginx1.20.1 与nginx配置文件

    保存并关闭文件,然后启动Nginx服务并设置开机启动: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 接下来,我们将配置Nginx以支持HTTPS。你需要准备一对SSL证书和私钥,这里我们假设你...

    centOS8安装nginx及nginx配置

    ### CentOS8安装Nginx及Nginx配置 #### 一、Nginx简介与应用场景 Nginx(发音为 "engine X")是一款由俄罗斯程序员Igor Sysoev开发的高性能Web服务器和反向代理服务器,同时也可用作IMAP/POP3/SMTP代理服务器。在...

    linux/centos 安装配置nginx 详细文档

    ### Linux/CentOS 下安装与配置 Nginx 的详细指南 #### 一、Nginx 简介 Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件 (IMAP/POP3) 代理服务器,由 C 语言开发而成,非常适合在 Linux 下运行。它以其...

    centos7 nginx离线安装包 nginx-1.20.1-2.el7.x86_64

    在完全无互联网连接的情况下,离线安装nginx。 nginx版本号:nginx-1.20.1-2.el7.x86_64 食用方法: 1.解压 2.进入解压目录 3.rpm安装全部 4.安装完成

    centos7.6离线安装nginx

    安装完成后,启动Nginx服务并设置其开机启动: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` 你可以通过访问服务器的IP地址(例如 http://your_server_ip/)来检查Nginx是否成功运行。...

    nginx 1.20.1 版本 CentOS 7 专用离线程序包及全部完整依赖 rpm 包。

    6. **启动 Nginx**: 使用 `sudo systemctl start nginx` 启动 Nginx 服务,并用 `sudo systemctl enable nginx` 设置开机启动。 7. **验证安装**: 访问服务器的 IP 地址或域名,如果一切正常,你应该能看到 Nginx 的...

    linux Nginx源码编译安装以及开机启动设置(CentOS6.3)

    本文将详细介绍如何在CentOS 6.3上通过源码编译安装Nginx,并设置其为开机启动。 一、准备工作 在开始安装前,确保系统已经更新到最新版本,并安装了必要的依赖工具。运行以下命令: ```bash sudo yum update -y ...

    Centos7环境下Nginx版本升级方式及步骤

    本篇文章将详细介绍两种在CentOS7上升级Nginx的方法:YUM upgrade和源码平滑升级,并提供相关的步骤和注意事项。 ### YUM upgrade 升级 YUM upgrade适用于已经使用RPM方式安装Nginx的用户。这种升级方式简单快捷,...

    nginx1.20withssl

    ### 二、在CentOS 7上安装Nginx 1.20 在CentOS 7系统中,我们通常会使用RPM包来安装Nginx。首先,我们需要启用EPEL仓库,因为Nginx不在默认的CentOS仓库中: ```bash sudo yum install epel-release -y ``` 然后...

    centos安装Nginx详细配置

    ### CentOS安装Nginx详细配置知识点 #### 一、安装准备 ...以上就是CentOS上安装Nginx并进行初步配置的详细过程,通过这些步骤,用户可以在自己的服务器上快速部署并运行Nginx,为网站提供高性能的Web服务。

    CentOS系统安装配置Nginx+keepalived实现负载均衡

    CentOS系统安装配置Nginx+keepalived实现负载均衡 本文将详细介绍CentOS系统安装配置Nginx+keepalived实现负载均衡的步骤和配置过程。通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构...

    centos7配置nginx虚拟主机

    centos7配置nginx虚拟主机

    centOS7设置Tomcat8开机启动

    在Linux系统中,尤其是CentOS 7,配置Apache Tomcat 8作为开机启动服务是确保服务器启动时自动运行Web应用程序的关键步骤。这个过程对于软件实施工程师来说非常重要,因为它可以简化维护工作,避免每次系统重启后...

    centos 非root安装nginx

    总结:在非root权限下安装Nginx,需要手动编译和配置所有依赖库,并指定安装路径。此外,由于没有权限设置系统服务,所以需要通过自定义脚本来启动和管理Nginx。这个过程虽然复杂,但在某些场景下,如共享主机环境,...

    Centos7的nginx-1.24.0免编译包,直接解压修改配置文件,启动即可

    通过以上步骤,你可以在 CentOS 7 上快速部署并运行 Nginx 1.24.0,同时理解了基本配置文件的结构和管理方法。不过,为了确保服务器的安全和高效运行,还需要根据实际环境进一步定制和优化配置。

    centos7安装nginx1.16.1

    ### CentOS 7 安装 Nginx...本文详细介绍了如何在 CentOS 7 上安装 Nginx 1.16.1,并对其进行了基本的配置与管理操作。通过上述步骤,用户可以轻松地搭建起基于 Nginx 的 Web 服务器,并能够对其进行有效的管理与维护。

    CentOS Linux安装配置nginx以及样例

    在本文中,我们将深入探讨如何在CentOS Linux系统上安装和配置Nginx,并提供一些基本的示例。Nginx是一款高性能的Web服务器和反向代理服务器,因其高效的性能和稳定性而广受欢迎。 首先,让我们按照步骤安装Nginx:...

    CentOS自动安装nginx

    # 启动Nginx并设置开机启动 systemctl start nginx systemctl enable nginx # 配置防火墙 firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload # ...

    CentOS6.3安装nginx操作指南

    安装完成后,添加 Nginx 到开机启动,并启动服务: ```bash chkconfig nginx on /usr/local/nginx/sbin/nginx ``` 现在,Nginx 已经运行在你的 CentOS 6.3 系统上,你可以通过浏览器访问 `http://your_server_ip` ...

    centos7系统下nginx安装并配置开机自启动操作

    至此,Nginx已经在CentOS7系统上成功安装并配置为开机自启动。当系统重启时,Nginx服务会自动启动,为你的Web应用程序提供服务。如果需要调整Nginx的配置,只需编辑`/usr/local/nginx/conf/nginx.conf`文件,并使用`...

Global site tag (gtag.js) - Google Analytics