一、下载

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. Linux 进程等待队列

    Linux内核的等待队列是以双循环链表为基础数据结构,与进程调度机制紧密结合,能够用于实现核心的异步事件通知机制. 在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待 ...

  2. nginx 配置open_cache_file 静态文件的缓存

    open_file_cache max=65535 inactive=30s 最多缓存多少个文件,缓存多少时间open_file_cache_min_uses 1 在30S中没有使用到这个配置的次数的 ...

  3. Cocos2d中update与fixedUpdate的区别(三)

    没错!现在的情况是很糟糕.因为玩家不会看到平滑的动作. 不管怎样,我们都对此无能为力.玩家期待在1秒后小球出现在位置(8),所以我们应该把球放在那里. 我们不会讨论如何避免掉帧的情况.对于这个例子我们 ...

  4. 断言(Assertion)需要注意的一个地方

    因为断言只在debug构建中有效,所以它是中关重要的去避免运行任何代码或调用任何方法在断言条件中,而这些代码或方法会影响程序的状态. 否则程序的行为将在debug和release构建中变得不一致,这显 ...

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

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

  6. HOW to Use QP_PREQ_PUB.PRICE_REQUEST API to Price an Item

    In this Document Goal   Solution   References APPLIES TO: Oracle Advanced Pricing - Version 11.5.10 ...

  7. "《算法导论》之‘队列’":队列的三种实现(静态数组、动态数组及指针)

    本文有关栈的介绍部分参考自网站数据结构. 1. 队列  1.1 队列的定义 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表. (1)允许删除的一端称为队头(Front) ...

  8. Gradle 1.12用户指南翻译——第三十八章. Eclipse 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  9. Android开发技巧——高亮的用户操作指南

    Android开发技巧--高亮的用户操作指南 2015-12-15补记: 发现使用PopupWindow进行遮罩层的显示,在华为P7上会有问题.具体表现为:画出来的高亮部分会偏下.原因为:通过view ...

  10. android EventBus详解(一)

    EventBus 是一款针对Android优化的发布/订阅事件总线.主要功能是替代Intent, Handler, BroadCast 在 Fragment,Activity,Service,线程之间 ...