一、下载

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. C语言头文件和库的一些问题

    使用gcc的编译器 头文件没有包含stdlib.h,使用atoi函数(atoi函数在stdlib.h中才有声明),编译却没有出错如果编译的时候加上-Wall选项,会有个警告,请问这是为什么? 这是因为 ...

  2. Shell 正则表达式总结及其含义举例

    基本元字符集及其含义: ^  只匹配行首 $   只匹配行尾 *   只一个单字符后紧跟*,匹配0个或多个此单字符 [ ]   只匹配[ ]内字符.可以是一个单字符,也可以是字符序列.可以使用 - 表 ...

  3. 【一天一道LeetCode】#52. N-Queens II

    一天一道LeetCode系列 (一)题目 Follow up for N-Queens problem. Now, instead outputting board configurations, r ...

  4. 线性表的顺序存储设计和实现 - API函数实现

    基本概念 设计与实现 插入元素算法 判断线性表是否合法 判断插入位置是否合法 把最后一个元素到插入位置的元素后移一个位置 将新元素插入 线性表长度加1 获取元素操作 判断线性表是否合法 判断位置是否合 ...

  5. MTK6577+Android之Camera驱动

    MTK6577+Android之Camera驱动 <MTK安卓平台的Camera效果在线调试> 1.     Camera拍照相关概念 1.1  ISP isp--(Image Signa ...

  6. LeetCode之“字符串”:Valid Number(由此引发的对正则表达式的学习)

    题目链接 题目要求: Validate if a given string is numeric. Some examples: "0" => true " 0.1 ...

  7. Linux - sed 工具

    我们先来谈一谈 sed 好了, sed 本身也是一个管线命令,可以分析 standard input 的啦! 而且 sed 还可以将数据进行取代.删除.新增.撷取特定行等等的功能呢!很不错吧- 我们先 ...

  8. 【Android 应用开发】BluetoothClass详解

    一. BluetoothClass简介 1. 继承关系 public final class BluetoothClass extends Object implements Parcelable 该 ...

  9. objc写一个NSMutableArray不连续索引替换对象的方法

    NSMutableArray内置的方法-(void)replaceObjectsAtIndexes:(NSIndexSet*)set withObjects:(NSArray*)objs 只能替换一段 ...

  10. C语言之linux内核--BCD码转二进制与二进制转BCD码(笔试经典)

    在分析代码之前,我们先来了解一下,BCD码和二进制到底区别在哪? 学习过计算机原理的和数字电子技术这两门课的都会知道这两个到底是什么含义,也有的同学学过了,考过了,过了一段时间又忘记了,今天,我们通过 ...