一、下载

Linux:CentOS 7.3 64位

Nginx:nginx-1.13.1

安装目录:/usr/local/

wget http://nginx.org/download/nginx-1.13.1.tar.gz

二、安装

1、安装Nginx依赖

(1)  gcc、gcc-c++

yum install gcc
yum install gcc-c++

(2) pcre 、zilb

yum -y install pcre*
yum -y install zlib*

(3) openssl (若需要支持 https 协议)

yum -y install openssl
yum -y install openssl-devel

2、安装Nginx

(1) 解压安装包

tar -z -xv -f nginx-1.13..tar.gz

(2) 编译

cd nginx-1.13.
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre

tips:

--prefix:设置安装路径
--with-http_stub_status_module:支持nginx状态查询
--with-http_ssl_module:支持https
--with-pcre:为了支持rewrite重写功能,必须制定pcre

(3) 安装

make
make install

(4) 启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

(5) 效果

访问 http://域名/

三、配置

Nginx 的配置内容都写在 /usr/local/nginx/conf/nginx.conf 中,先来看看这个文件一些配置项的含义:

#user  nobody;
#开启的线程数,一般跟逻辑CPU核数一致
worker_processes 1; #定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #指定进程id的存储文件位置
#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; #开启防止网络阻塞
#tcp_nodelay on; #keepalive_timeout 0;
#设置客户端连接保存活动的超时时间
keepalive_timeout 65; #设置允许客户端请求的最大的单个文件字节数
client_max_body_size 200m; #指定来自客户端请求头的headebuffer大小
#client_header_buffer_size 32k; #指定连接请求试图写入缓存文件的目录路径
#client_body_temp_path /dev/shm/client_body_temp; #指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KB
#large client_header_buffers 4 32k; #gzip on; #配置负载均衡
upstream tomcatServer {
server 192.168.0.1:8680 weight=10;
server 192.168.0.2:8680 weight=10;
} server {
#监听端口,其中 http 是80,https 是 443
listen 80;
#主机域名
server_name localhost;
#设置访问的语言编码
#charset koi8-r;
#设置虚拟主机访问日志的存放路径及日志的格式为main
#access_log logs/host.access.log main; #监听所有的 / 访问路径,并将它转化相应服务器
location / {
proxy_pass http://tomcatServer/;
} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#} # deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
} # another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
# listen 8000;
# listen somename:8080;
# server_name somename alias another.alias; # location / {
# root html;
# index index.html index.htm;
# }
#} # HTTPS server
#
server {
#监听https请求
listen 443 ssl;
#主机域名
server_name api.gogo.cn;
#公钥,他会被发送到连接服务器的每个客户端
ssl_certificate /usr/local/cert/lxcx.pem;
#私钥,是用来解密的
ssl_certificate_key /usr/local/cert/lxcx.key; #缓存在所有工作进程之间共享,1MB可以存储4000个会话
ssl_session_cache shared:SSL:1m;
#会话超时时间
ssl_session_timeout 30m; #Nginx 只允许使用 TLS 协议
#指令用于启动特定的加密协议
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#选择加密套件
ssl_ciphers HIGH:!aNULL:!MD5:!EXPORT56:!EXP;
#设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户端浏览器的加密套件
ssl_prefer_server_ciphers on; proxy_connect_timeout 500;
proxy_send_timeout 500;
proxy_read_timeout 500;
client_max_body_size 200m;
location / {
# root html;
# index index.html index.htm;
proxy_pass http://172.27.0.11:8680/;
}
        # 配置 wss 访问
location /socket {
proxy_pass http://127.0.0.1:/9999;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
    }
    server {
listen 443 ssl;
server_name admin.gogo.cn; ssl_certificate /usr/local/cert/lxcx.pem;
ssl_certificate_key /usr/local/cert/lxcx.key; ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on; location / {
#root html;
# index index.html index.htm;
proxy_pass http://172.27.0.11:8380/;
proxy_connect_timeout 500;
proxy_send_timeout 500;
proxy_read_timeout 500;
client_max_body_size 200m; }
} }

1、配置负载均衡

如上,在文件中配置以下内容,这里用的是 指定轮询几率 的权重分配方式,指定 两台服务器的访问几率。这里配置的 1:1 的访问几率,可以根据服务器的硬件条件配置相应的比例。这种配置有个缺陷就是访问请求 随机的在两台服务器间跳转,还需要解决不同服务器间session共享问题。

upstream tomcatServer {
server 192.168.0.1:8680 weight=10;
server 192.168.0.2:8680 weight=10;
}

除了这种方式外,还有 ip_hash 方式。每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可解决session的问题:

upstream tomcatServer {
ip_hash;
server 192.168.0.1:8680;
server 192.168.0.2:8680;
}

还有一种,按后端服务器的响应时间来分配请求,响应时间短的优先分配:

upstream tomcatServer {
server 192.168.0.1:8680;
server 192.168.0.2:8680;
fair;
}

接下来,我们就要把访问请求 映射到负载均衡上:

location /{
proxy_pass http://tomcatServer/;
}

2、重启服务

(1)  验证配置文件是否正确

进入nginx安装目录sbin下,输入命令./nginx -t

(2) 重启服务

进入nginx可执行目录sbin下,输入命令./nginx -s reload 即可

Nginx 的安装与配置的更多相关文章

  1. nginx的安装与配置

    1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...

  2. python-django-fastdfs+Nginx的安装和配置_20191122

    python-django-fastdfs+Nginx的安装和配置 FastDFS文件系统 FastDFS文件系统简介: 是c语言编写的,是淘宝的架构师写的,存储淘宝的图片,后来开源了, fastDF ...

  3. linux下nginx的安装及配置

    一.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...

  4. linux应用之nginx的安装及配置(centos)

    Ubuntu/CentOS 系统上安装与配置Nginx 一.在线安装: Ubuntu:sudo apt-get install nginx CentOS: sudo yum install nginx ...

  5. Centos7 中Nginx的安装与配置

    安装与配置 1.安装nginx yum intsall nginxsudo systemctl start nginx 启动服务sudo firewall-cmd --permanent --zone ...

  6. 【Nginx】安装&环境配置

    安装依赖包 安装make:yum -y install gcc automake autoconf libtool make 安装g++:yum -y install gcc gcc-c++ 安装pc ...

  7. Centos7下nginx的安装与配置

    说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...

  8. 超详细Nginx的安装和配置教程

    一. 编译安装nginx 下载nginx安装包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 也可以选择其他版本,官网:http://nginx. ...

  9. linux下nginx的安装和配置

    准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...

  10. Linux下Nginx的安装与配置

    安装前需要安装pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/1.解压缩:     tar xjpf pcre-7.8.tar.b ...

随机推荐

  1. jdbc连接sql数据库

    JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口 ...

  2. 数据结构基础(21) --DFS与BFS

    DFS 从图中某个顶点V0 出发,访问此顶点,然后依次从V0的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和V0有路径相通的顶点都被访问到(使用堆栈). //使用邻接矩阵存储的无向图的深度 ...

  3. 查看Linux系统的平均负载

    1.Linux系统的平均负载的概念 有时候我们会觉得系统响应很慢,但是又找不到原因,这时就要查看平均负载了,看它是否有大量的进程在排队等待.特定时间间隔内运行队列中的平均进程数可以反映系统的繁忙程度, ...

  4. [前端]Emmet 基本语法快查

    Emmet 是一种快速写html的语法,通过几个简单的缩写,就可以拓展成html标签,工作中写html多多少少会有一些,使用的语法都是基础语法,这里总结下最常用的几个,备查. 这个插件支持非常多的ID ...

  5. 网站开发进阶(二十六)js刷新页面方法大全

    js刷新页面方法大全 在项目开发过程中,需要实现刷新页面.经过学习,发现下面这条语句就可以轻松实现. location.reload(); // 刷新页面 有关刷新页面的其它方法,具体学习内容如下,有 ...

  6. VirtualBox安装RHEL之后配置桥接网络

    VirtualBox安装RHEL之后配置桥接网络 1 如果主机是Intel (R) Ethernet Connection I217-LM上网的: 2 如果主机是无线上网的, 如ipconfig显示如 ...

  7. ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法

    ITU-R BT.1788建议书 对多媒体应用中视频质量的主观评估方法 (ITU‑R 102/6号研究课题) (2007年) 范围 数字广播系统允许提供多媒体和数据广播应用,包括视频.音频.静态图像. ...

  8. Android中使用SVG矢量图(一)

    SVG矢量图介绍 首先要解释下什么是矢量图像,什么是位图图像? 1.矢量图像:SVG (Scalable Vector Graphics, 可伸缩矢量图形) 是W3C 推出的一种开放标准的文本式矢量图 ...

  9. Android Notification 版本适配方案

    Notification 介绍见:https://developer.android.com/reference/android/app/Notification.html Android api 一 ...

  10. Linux打包命令 - tar

    上一篇文章谈到的命令大多仅能针对单一文件来进行压缩,虽然 gzip 与 bzip2 也能够针对目录来进行压缩, 不过,这两个命令对目录的压缩指的是『将目录内的所有文件 "分别" 进 ...