Linux下Nginx安装与使用-常用功能-简单易上手

安装

Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器(这是个开源的时代啊~)
Nginx是一个跨平台服务器,可以运行在Linux,Windows,FreeBSD,Solaris, AIX,Mac OS等操作系统上。
可以作为反向代理进行负载均衡的实现,带来的极大的稳定性。
Nginx这样做的目的主要是将数据的承载量分摊到多个服务器上进行执行,这只是在服务基础设施上提高性能的优化手段之一
1、nginx下载地址:https://nginx.org/download/
下载“nginx-1.9.9.tar.gz”,移动到/usr/local/下。
解压

tar -zxvf nginx-1.9.9.tar.gz

进入nginx目录

cd /usr/local/nginx-1.9.9

配置

./configure --prefix=/usr/local/nginx

make

make
make install

Nginx版本

/usr/local/webserver/nginx/sbin/nginx -v

到此,nginx安装完成。

使用

进入/sbin 目录,执行命令
Nginx启动

./nginx 

Nginx配置重载

nginx -s reload

Nginx重启

nginx -s reopen 

Nginx关闭

nginx -s stop  

全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。

负载均衡

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。
upstream nginx集群
server 服务
weight 权重设置,负载均衡轮询级别
ip_hash 访问IP,设置请求方固定访问一台服务器。
down 表示单前的server暂时不参与负载
backup:预留备份服务器
location对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

#集群  
    upstream  demo.test.com {  #集群套接名称
   		 ip_hash 
		server    127.0.0.1:8081  weight=4;
		server    127.0.0.1:8082  weight=4;
		server    127.0.0.1:8083  weight=4;down 
		server    127.0.0.1:8084  weight=4;backup		
    }
    server{
   		listen       80;监听端口 
        server_name  localhost www.test.com; 
	 location / {  
     	    proxy_pass http://demo.test.com;  
            proxy_redirect default;  
        } 
	}

反向代理

Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反向代理。
这里我给来2张图,对正向代理与反响代理做个诠释
在这里插入图片描述

Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。
、增强了安全性
    首先,你背后的服务器是在反向代理后面的,其不会暴露任何信息到网络上,所以可以防止恶意攻击。第二,可以防止DDoS( distributed denial-of-service)攻击,例如通过限制某一IP访问,限制每个客户端的访问次数等。
2、增强了可伸缩性与灵活性
    因为客户端只能看到反向代理的Ip地址,所以我们就可以灵活的改变其后面服务器的配置。

3、加速Web访问速度。
    第一:将返回结果压缩后交给客户端,这样就会节省网络带宽,从而加快速度。
    第二:将请求的加密解密操作放在反向代理服务器上行执行。
    第三:在反向代理服务器上做缓存。

4、为负载均衡和动静分离提供实现支持

负载均衡:使用反向代理同时代理多个相同内容的应用服务器(比如tomcat),将客户端请求分发到各个应用服务器上并接收响应返回给客户端

负载均衡的作用:当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此一来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

动静分离:运用Nginx的反向代理功能分发请求:所有动态资源的请求交给应用服务器,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx服务器返回到浏览器

动静分离的作用:主要是nginx处理静态页面的效率远高于tomcat的处理能力,使用c语言开发的nginx对静态资源每秒的吞吐量是使用Java语言开发的tomcat的6倍,也远高于其它应用服务器

反向代理配置详解
server块:配置虚拟主机的相关参数,一个http中可以有多个server。
keepalive_requests 120; 单连接请求上限次数。
listen 80; 监听端口
server_name 127.0.0.1 / www.baidu.com; #监听地址 IP/域名

*location块:配置请求的路由,以及各种页面的处理情况。#请求的url过滤,正则匹配,"~"
为区分大小写,~为不区分大小写。/ 、/资源目录/等匹配规则

proxy_pass http://server; 请求转向server定义的服务器列表 IP/域名都可
rewrite 重定向
deny 127.0.0.1; 拒绝的ip
allow 192.168.0.1; 允许的ip
root path; 根目录 资源加载
index index.html; 默认页设置

proxy_set_header Host KaTeX parse error: Expected 'EOF', got '#' at position 12: http_host; #̲1、http_host 2、 h o s t : host: host:server_port
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
以上三行,目的是将代理服务器收到的用户的信息传到真实服务器上
跨域配置
add_header ‘Access-Control-Allow-Origin’ ‘*’;
add_header ‘Access-Control-Allow-Credentials’ “true”;
add_header Access-Control-Allow-Headers X-Requested-With;
请求方到转发协议跨域设置
代码片段

server {
		listen       80;
		server_name  www.baidu.com
		location / {  访问URL无指定资源匹配
				#proxy_set_header Host $http_host; #1、$http_host 2、$host:$server_port请求到达的服务器端口号;
				 root   /usr/share/nginx/html;
				#proxy_pass http://127.0.0.1/;
			} 
		location /demo1/ {  根据访问URL指定资源匹配
				 proxy_pass http://127.0.0.1:8080/;
		} 
		# 定义错误页面码,如果出现相应的错误页面码,转发到那里。
		error_page  404 403 500 502 503 504  /404.html;
		# 承接上面的location。
		location = /404.html {
		# 放错误页面的目录路径。
			root   /usr/local/nginx/html;
		}
	}

SSL证书配置

		#为server开启ssl支持
        ssl                  on;
        #为虚拟主机指定pem格式的证书文件
        ssl_certificate      /usr/local/nginx/cyb_key/demo.crt; 
        #为虚拟主机指定私钥文件
        ssl_certificate_key  /usr/local/nginx/demo_key/demo.key; 
		#ssl_certificate_key  /usr/local/nginx/demo_key/demo.pem; 
        #客户端能够重复使用存储在缓存中的会话参数时间
        ssl_session_timeout  5m;
        #指定使用的ssl协议 
       
        #指定许可的密码描述
       
		ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;
		
        #SSLv3和TLSv1协议的服务器密码需求优先级高于客户端密码
        ssl_prefer_server_ciphers  on;

内置变量

最新版nginx内置变量:https://blog.csdn.net/leonnew/article/details/82732120

使用总结
反向代理是由请求方请求到Nginx服务器,Nginx根据访问的IP\域名\端口,进行location规则匹配转发到服务。可实现同一个端口访问不同服务,对外端口多用,对内代理转发指定的本地端口服务。
负载均衡基于反向代理实现,在upstream模块中定义多个server加权重配置轮询可实现多服务器服务均衡。如:

upstream demo{
server 192.168.0.1:8081 weight=1\2\3\4
server 192.168.0.1:8082 weight=1\2\3\4
}

配置好upstream模块后需新定义server模块,配置虚拟主机的相关参数,由代理进行服务转发即可。
如:
server {
listen 80;
server_name www.baidu.com
location / {
proxy_pass http://均衡集群名称/;
}
}

自己使用nginx的一些经验和理解,如有问题请指出。

勿喷,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值