Nginx 的安装与配置
一、下载
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 的安装与配置的更多相关文章
- nginx的安装与配置
1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...
- python-django-fastdfs+Nginx的安装和配置_20191122
python-django-fastdfs+Nginx的安装和配置 FastDFS文件系统 FastDFS文件系统简介: 是c语言编写的,是淘宝的架构师写的,存储淘宝的图片,后来开源了, fastDF ...
- linux下nginx的安装及配置
一.安装nginx前,我们首先要确保系统安装了g++.gcc.openssl-devel.pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以通过图二所示卸载 ...
- linux应用之nginx的安装及配置(centos)
Ubuntu/CentOS 系统上安装与配置Nginx 一.在线安装: Ubuntu:sudo apt-get install nginx CentOS: sudo yum install nginx ...
- Centos7 中Nginx的安装与配置
安装与配置 1.安装nginx yum intsall nginxsudo systemctl start nginx 启动服务sudo firewall-cmd --permanent --zone ...
- 【Nginx】安装&环境配置
安装依赖包 安装make:yum -y install gcc automake autoconf libtool make 安装g++:yum -y install gcc gcc-c++ 安装pc ...
- Centos7下nginx的安装与配置
说明:软件安装的基础目录路径:/usr/local 所以下载软件的时候切换到此目录下下载直接解压即可 1.安装gcc gcc-c++依赖包 yum install -y gcc gcc-c++ 2.下 ...
- 超详细Nginx的安装和配置教程
一. 编译安装nginx 下载nginx安装包 wget http://nginx.org/download/nginx-1.8.0.tar.gz 也可以选择其他版本,官网:http://nginx. ...
- linux下nginx的安装和配置
准备目录 [root@sqh ~]# mkdir /usr/local/nginx [root@sqh ~]# cd /usr/local/nginx 添加一些支持和依赖 1.安装gcc 安装redi ...
- Linux下Nginx的安装与配置
安装前需要安装pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/1.解压缩: tar xjpf pcre-7.8.tar.b ...
随机推荐
- numpy教程:统计函数Statistics
http://blog.csdn.net/pipisorry/article/details/48770785 , , ] , '\n') 输出: True 当然可以设置度参数bias : int, ...
- (四十五)Modal 模态窗口 -遮盖
任何控制器都能通过Modal方式切换. Modal的默认效果是:新显示的控制器从屏幕底部向上,直到盖住之前的控制器为止. 假设有One和Two两个控制器: One到Two的Modal方法:presen ...
- Spring MVC中jsessionid所引起的问题 和解决
转自:http://blog.csdn.net/seakingwy/article/details/1933687 jsessionid所引起的问题在Spring MVC当使用RedirectV ...
- Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高!
Android拼图游戏的设计逻辑,从切图到交互动画,从关卡到倒计时,实例提高! 群英传的最后一章,我大致的看了一下这个例子,发现鸿洋大神也做过,就参考两个人的设计逻辑,感觉都差不多,就这样实现起来了 ...
- netty对http协议解析原理解析
本文主要介绍netty对http协议解析原理,着重讲解keep-alive,gzip,truncked等机制,详细描述了netty如何实现对http解析的高性能. 1 http协议 1.1 描述 标示 ...
- C++中的虚函数表是什么时期建立的?
虚函数表是在什么时期建立的? 最近参加阿里巴巴公司的内推,面试官问了“虚函数表是在什么时期建立的?”.因为以前对虚函数表的理解不够多,所以就根据程序构建(Build)的四个过程(预编译.编译.汇编和链 ...
- Swift之GCD使用指南1
Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行的任务并追加到适当的Dispatch Que ...
- 增量会话对象——DeltaSession
在集群环境中为了使集群中各个节点的会话状态都同步,同步操作是集群重点解决的问题,一般来说有两种同步策略,其一是每次同步都把整个会话对象传给集群中其他节点,其他节点更新整个会话对象:其二是对会话中增量修 ...
- 【Android 应用开发】BluetoothSocket详解
一. BluetoothSocket简介 1. 简介 客户端与服务端 : BluetoothSocket 和 BluetoothServerSocket 类似于Java中的套接字的 Socket 和 ...
- django-debug-tools 使用
用django开发很快也很容易,但是很多时候我们的经验并不是很足,就会给自己挖下很多坑,不管是性能问题,还是开发语言使用技巧问题都会给应用的稳定带来危害, 开发之后的调试和调优就显得很重要,今天就尝试 ...