linux安装部署nginx

#############################################################################
#需要gcc编译环境,因为nginx由c语言进行编写
yum install gcc-c++
#需要安装pcre库,PCRE库支持正则表达式,Nginx的的HTTP模块需要使用PCRE解析正则表达式
yum install -y pcre*
#需要安装opsenssl
yum install -y openssl*
#一步准备,安装好需要的库
yum install gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
#解压
#z表明需要使用gzip压缩
#x从tar包中将文件提取出来
#v显示详细信息
#f指定处理文件
tar -zxvf 包名
#解压后进入解压后的nginx的目录执行,但是目录必须存在,自行创建
#一步到位
./configure
–prefix=/usr/local/nginx
–sbin-path=/usr/local/nginx/sbin/nginx
–conf-path=/usr/local/nginx/conf/nginx.conf
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–user=nginx
–group=nginx
–with-http_ssl_module
–with-http_stub_status_module
–with-http_gzip_static_module
–http-client-body-temp-path=/var/tmp/nginx/client/
–http-proxy-temp-path=/var/tmp/nginx/proxy/
–http-fastcgi-temp-path=/var/tmp/nginx/fcgi/
–http-uwsgi-temp-path=/var/tmp/nginx/uwsgi
–http-scgi-temp-path=/var/tmp/nginx/scgi
–with-pcre

#使用make进行编译
make && make install
#编译成功后nginx中的主要有四个文件:
conf–配置文件
html–网页文件
logs–日志文件
sbin–主要二进制程序

#配置环境变量
vim /etc/profile
#最后两行添加
export NGINX_HOME=/usr/local/nginx
export PATH= P A T H : PATH: PATH:{NGINX_HOME}/sbin

#启动Nginx,nginx的启动程序在sbin目录下面。配置了就是nginx开头启动和关闭
./sbin/nginx
#停止nginx命令为
./sbin/nginx -s stop
#显示nginx的所有进程
ps -ef |grep nginx

nginx.conf文件只要分为几部分:
1.全局配置,配置影响nginx的全局指令
2.events块:影响nginx服务器与用户的网络连接、有进程的最大连接数,选取哪种事件驱动模型处理连接请求,
是否允许同时接收多个网络连接没开启多个网络连接序列
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。
如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
upstream(负载均衡服务器设置)
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location块:配置请求的路由,以及各种页面的处理情况。

关系:main<-server<-location upstream既不会继承其它设置也不会被继承
user 主模块指令,设置运行用户组和用户组,默认都由nobody账号运行
worker_processes 主模块指令 ,指定Nginx需要开启的进程数。每个Nginx进程平均消耗10M-12M内存。建议指定和CPU的数量一致即可。
error_log是主模块指令,用来定义全局错误日志文件。日志输出级别有debug、info、warn、error等
pid 主模块指令 指定进程pid存储文件位置
worker_rlimit_nofile用于绑定worker进程和CPU

events是设置工作模式:五种工作模式,select、poll、kqueue、epoll、rtsig、poll 其中select和poll是标准工作模式,
epoll和kqueue是高效工作模式;epoll用在linux中,kqueue用在BSD系统中。epoll高效工作模式是首选。

设置负载均衡:
###############################################################################
upstream和server是同级,属于http。
upstream mysvr {
#本机上的Squid开启端口
#max_fails,最大失败次数,在访问失败次数超过这个值之后,在fail_timeout时间弄内请求不会分发到该服务器。
如fail_timeout位0,则永久失效该服务器
#backup 备份机,所有服务器挂了才会生效
#max_conns 限制分配给某台Server处理的最大连接数量,超过这个数量,将不会分配新的连接给它。
默认为0,表示不限制。注意:1.5.9之后的版本才有这个配置
#负载方式:
#方式一:ip_hash ,每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,
可以解决session的问题。但是不能与backup同时使用
#方式二:least_conn ,把请求分配到连接数最少的server
#方式三:weight, weigth参数表示权值,权值越高被分配到的几率越大,可以和方式一结合使用
#方式四: 不写参数,就是默认的轮询方式分配
server 192.168.248.1:8082 weight=3 max_fails=3 fail_timeout=15 max_conns=1000;
server 192.168.248.1:8081 weight=7 max_fails=3 fail_timeout=15;
server www.baidu.com backup; 前两个访问失败会直接跳转到backup页面。备用页面
}
不配置权重默认为1;

upstream支持四种负载均衡调度算法:
1.轮询(默认),每个请求按照时间顺序逐一分配到不同的后端服务器
2.ip_hash:每个请求按照访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器,可以保证来自同一ip的请求被打到固定的机器上,解决session问题
3.url_hash:按照访问的url的hash结果给来分配请求,使每一个url定向到同一个后端服务器
4.fair:根据页面加载时间的长短来进行时间负载均衡。nginx本身不支持fair,需要下载upstream_fair模块
###############################################################################
nohup java -jar 包名
#关闭防火墙
systemctl stop firewalled
#设置开机启动
systemctl start nginx
systemctl enable nginx
nginx -c /path/nginx.conf # 以特定目录下的配置文件启动
nginx: nginx -s reload # 修改配置后重新加载生效
nginx -s reopen # 重新打开日志文件
nginx -s stop # 快速停止nginx
nginx -s quit # 完整有序的停止nginx
nginx -t # 测试当前配置文件是否正确
nginx -t -c /path/to/nginx.conf # 测试特定的nginx配置文件是否正确
注意: nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件

  1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行 工作(因为worker未受到影响)
  2. Nginx启动新的worker进程,采用新的配置文件

SSL证书上传
#########################################################
在nginx的conf目录下面创建一个cert目录,将ssl的两个文件(.pem和.key文件)放入cert下


先安装https模块,这步操作是在解压后的nginx的文件夹下面执行的
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
完成后:make(千万不要make install,否则会重新安装nginx)
关闭服务:./sbin/nginx -s stop
备份安装路径下的:/usr/local/nginx/sbin 目录下的nginx
将解压目录下面的安装了https后的nginx换到/usr/local/nginx/sbin/目录下面
cp /etc/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/

[root@localhost sbin]# nginx -V
nginx version: nginx/1.8.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

表示安装https模块已经成功


配置

server{
listen 443 ssl;
#配置https的默认访问端口为443
#如果未在此处配置HTTPS的默认访问端口可能会造成nginx服务无法启动
#使用Nginx1.15.0及以上版本,请使用listen 443 ssl代替listen 443 和 ssl on
server_name yourdomain.com;#需要将yourdomain.com替换成证书绑定的域名
root html;
index index.html index.htm;
ssl_certificate cert/cert-fil-name.pem;#需要将cert-file-name.pem替换成已上传的证书文件的名称。
ssl_certificate_key cet/cert-fil-name.key;#需要将cert-file-name.key替换成已上传的证书文件的名称。
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES123-GCM-SHA256:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4
#表示使用的加密套件的类型
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#表示使用的TSL协议的类型
ssl_perfer_server_ciphers on;
location /{
root html;#站点目录
index index.html index.tml;
}
}
#########################################################
注意:需要配置安全组。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值