您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Linux下Nginx的安装与部署
一、Nginx概述Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由IgorSysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。本文档中Nginx版本:nginx-1.10.2二、Nginx安装准备2.1关闭防火墙用root用户登录Liunx系统关闭防火墙,关闭防火墙的作用在于防火墙阻挡网络的端口访问,照成网络访问不正常。#serviceiptablesstop#chkconfig--level345iptablesoff关闭selinux命令:#setenforce02.2创建Nginx用户创建nginx运行的用户和组#groupaddnginx#useradd-gnginxnginx#passwdnginx改变程序目录属主属性,赋权给nginx用户#chown-hRnginx:nginx/home/nginx三、Nginx依赖包安装2.1安装gcc用root登录名上传Linux系统镜像文件到目录/home/nginx路径,输入命令进入到nginx用户的目录:#cd/home/nginx输入命令查看所有文件,确保镜像文件已上传。:#ls–n输入命令挂在镜像文件。注意修改镜像文件名称。#mount-oloop/home/nginx/rhel-server-6.8-x86_64-dvd.iso/mnt输入命令进入到已挂载的镜像文件目录中:#cd/mnt/Packages输入命令查看所有软件包的.rpm安装包列表:#ls输入命令以下命令(软件安装顺序不能错):注意安装包名称根据实际情况修改,具体名称可以看ls命令的安装包列表(上图)。#rpm-ivhmpfr-2.4.1-6.el6.x86_64.rpm#rpm-ivhppl-0.10.2-11.el6.x86_64.rpm#rpm-ivhcpp-4.4.7-17.el6.x86_64.rpm#rpm-ivhcloog-ppl-0.15.7-1.2.el6.x86_64.rpm#rpm-ivhgcc-4.4.7-17.el6.x86_64.rpm#rpm-ivhlibstdc++-devel-4.4.7-17.el6.x86_64.rpm#rpm-ivhgcc-c++-4.4.7-17.el6.x86_64.rpm#rpm-ivhncurses-devel-5.7-4.20090207.el6.x86_64.rpm2.2安装pcreNginx的rewrite模块需要pcre库用root登录名将pcre库安装包上传到Linux系统的/home/nginx目录中。输入解压命令:#cd/home/nginx#tar–zxvfpcre-8.39.tar.gz输入命令ls拷贝解压后文件夹名称,再输入cd文件夹名称进入到解压后的路径,然后利用命令进行编译并安装。#cdpcre-8.39#./configure接着输入命令编译并安装pcre:#make#makeinstall2.3安装zlibgzip模块需要zlib库,用nginx登录将zlib程序包上传到nginx目录中。输入命令:#cd/home/nginx#tar–zxvfzlib-1.2.8.tar.gz输入命令进入解压后的目录并安装编译:#cdzlib-1.2.8#./configure#make#makeinstall2.4安装OpenSSL将OpenSSL安装包上传到nginx目录中。输入解压命令并进入解压后目录:#cd/home/nginx#tar-zxvfopenssl-1.0.1t.tar.gz#cdopenssl-1.0.1t输入命令编译安装#./config#make#makeinstall以上步骤将nginx依赖包已安装完成。四、Nginx安装用nginx登录名上传Nginx安装包到linux服务器/home/nginx目录下,进入到nginx存放路径里。#cd/home/nginx输入解压命令解压Nginx安装包:#tar–zxvfnginx-1.10.2.tar.gz输入命令,进入解压后的安装包目录中。:#cdnginx-1.10.2安装完所有的nginx依赖包后,可以编译并安装nginx程序,输入命令:#./configure--prefix=/home/nginx/nginx-10.2--with-pcre=/home/nginx/pcre-8.39--with-zlib=/home/nginx/zlib-1.2.8--with-openssl=/home/nginx/openssl-1.0.1t--with-http_stub_status_module--with-http_realip_module--with-http_ssl_module//一条命令不换行接着执行命令:#make#makeinstall以上命令无报错提示,则nginx已安装完成。五、Nginx启动用root登录名输入编辑命令:#vi/home/nginx/nginx-10.2/conf/nginx.conf按字母键i进行编辑nginx.conf:更改之后按键盘左上角的Esc键,并输入命令::wq,回车保存并退出。输入nginx启动命令:#/home/nginx/nginx-10.2/sbin/nginx本机访问地,显示以下网页就说明Nginx启动成功。Nginx检测命令:#./nginx#启动#nginx-t#nginx语法检查#nginx-sstop#关闭#nginx-sreload#重新加载配置文件#ps-ef|grepnginx#查找进程号#killall-9nginx#kill-9杀掉进程六、Nginx负载均衡配置输入命令:#vi/home/nginx/nginx-10.2/conf/nginx.conf按字母键i进行编辑nginx.conf:以上红色字体需要更改或者添加usernginx;#定义Nginx运行的用户和用户组worker_processes8;#启动进程,通常设置成和cpu的数量相等;用cat/proc/cpuinfo查看cpu信息,cpucores一栏显示内核数error_loglogs/error.log;#全局错误日志#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;pidlogs/nginx.pid;#进程id存储文件events{useepoll;#epoll是多路复用IO(I/OMultiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能worker_connections204800;#单个后台workerprocess进程的最大并发链接数,理论上每台nginx服务器的最大连接数为。worker_processes*worker_connections}http{includemime.types;default_typeapplication/octet-stream;log_formatmain'$remote_addr-$remote_user[$time_local]$request''$status$body_bytes_sent$http_referer''$http_user_agent$http_x_forwarded_for';access_loglogs/access.log;#设定日志格式sendfileon;#必须设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptimeserver_tokensoff;#关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的autoindexon;#开启目录列表访问,合适下载服务器,默认关闭tcp_nopushon;#防止网络阻塞#keepalive_timeout0;keepalive_timeout60;#给客户端分配keep-alive连接超时时间tcp_nodelayon;#告诉nginx不要缓存数据,而是一段一段的发送;当需要及时发送数据时,就应该给应用设置这个属性,这样发送一小块数据信息时就不能立即得到返回值gzipon;#开启gzip压缩gzip_disableMSIE[1-6]\.(?!.*SV1);#指定的客户端禁用gzip功能。我们设置成IE6或者更低版本以使我们的方案能够广泛兼容。#设定请求缓冲client_header_buffer_size1k;large_client_header_buffers44k;#打开缓存的同时也指定了缓存最大数目,以及缓存的时间;我们可以设置一个相对高的最大时间,这样我们可以在它们不活动超过20秒后清除掉。open_file_cachemax=100000inactive=20s;open_file_cache_valid30s;#在open_file_cache中指定检测正确信息的间隔时间open_file_cache_min_uses2;#定义了open_file_cache中指令参数不活动时间期间里最小的文件数open_file_cache_errorson;#指定了当搜索一个文件时是否缓存错误信息,也包括再次给配置中添加文件。我们也包括了服务器模块,这些是在不同文件中定义的。如果你的服务器模块不在这些位置,你就得修改这一行来指定正确的位置。#虚拟主机的配置文件include/etc/nginx/conf.d/*.conf;include/etc/nginx/sites-enabled/*;#设定负载均衡的服务器列表upstreammyCluster{#采用默认轮询算法,后端两个tomcat接口(tomcat服务器IP及端口)server192.168.10.1:8080max_fails=2fail_timeout=30s;server192.168.10.150:8080max_fails=2fail_timeout=30s;}server{listen80;#侦听80端口server_name192.168.10.120;#定义使用IP访问#charsetutf-8;access_loglogs/host.access.log;#设定本虚拟主机的访问日志location/{roothtml;indexindex.htmlindex.htm;proxy_pass这里的名字和上面的cluster的名字相同proxy_redirectoff;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;client_max_body_size10m;client_body_buffer_size128k;proxy_connect_timeout90;proxy_send_timeout90;proxy_read_timeout90;proxy_buffer_size4k;proxy_buffers324k;proxy_busy_buffers_size64k;}#静态对象web缓冲location~*\.(htm|html|xml|gif|jpg|jpeg|png|bmp|ico|rar|zip|java|jar|txt|flv|swf|txt|wma|exe|css|js)${proxy_pass这里的名字和上面的cluster的名字相同proxy_redirectoff
本文标题:Linux下Nginx的安装与部署
链接地址:https://www.777doc.com/doc-4362042 .html