在linux中,nginx是一個高效能的HTTP和反向代理web伺服器,是一款高效能的http伺服器、反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。
本教學操作環境:linux5.9.8系統、Dell G3電腦。
nginx是什麼
Apache 靜態資源伺服器
nginx 是 反向代理的 靜態資源伺服器 。
nginx是一個使用c語言開發的高效能的http伺服器及反向代理伺服器。 Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試nginx能夠支撐5萬並發鏈接,並且cpu、內存等資源消耗卻非常低,運行非常穩定。
正向代理:
反向代理:
反向代理一般是用在伺服器端,做請求的分發,能實現負載均衡。
Nginx的應用場景
1、http伺服器。 Nginx是一個http服務可以獨立提供http服務。可以做網頁靜態伺服器。
2、 虛擬主機。可以實現在一台伺服器虛擬出多個網站。例如個人網站使用的虛擬主機。
基於連接埠的,不同的端
基於網域的,不同網域
#3、反向代理,負載平衡。當網站的訪問量達到一定程度後,單一伺服器無法滿足使用者的請求時,需要用多台伺服器叢集可以使用nginx做反向代理。而多台伺服器可以平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。
1、安裝nginx 服務所需的外掛程式
yum install -y yum-utils##2、安裝nginx
在官方yum來源中也是沒有nginx的,但是我們可以在本機去設定nginx的yam源,來實現nginx 的yum安裝。
然後再建立一個nginx.repo的檔案:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1安裝好了:
nginx服務的管理指令:
systemctl start/stop/restart/status nginx3、需要關閉linux 作業系統的selinux 服務
selinux是linux的安全服務套件
修改vi /etc/selinux/config文件,修改如下內容:
# 修改過之後,必須重新啟動linux。
nginx 設定檔:
我們以後常修改的設定檔是/etc/nginx/conf.d/default.conf:使用nginx 做負載平衡
#下載完壓縮套件透過xftp傳到linux的opt資料夾下,進行解壓縮
第一步,首先要在我們linux伺服器上啟動兩個tomcat
先配置jdk环境变量:
然后 保存退出 ,在命令行执行 source 命令 编译环境变量文件,让环境变量立刻生效:
tomcat 启动:
第二步,准备两个tomcat 一个端口号弄成8000 另外一个9000
第三步,修改nginx的配置文件
没有安装vim,使用vi命令
然后重启nginx服务:
轮询策略
默认nginx支持的策略,来了请求之后 排队把请求一个一个的分发出去。
权重策略
IP_HASH方式
根据 客户端ip地址 固定分配到一台服务器上,以后这个ip来的所有请求 都会只到这一个服务器上。
上面我们实现的集群方式 可以解决tomcat 服务器单点故障的问题,但是解决不了 nginx服务器单点故障的问题。
解决nginx 单点故障问题,市场上通用的解决方案就是使用keepalived 这种插件。
先安装keepalived服务:
下面修改keepalived的配置文件: vim /etc/keepalived/keepalived.conf文件:
global_defs { notification_email { #keepalived如果检测到nginx服务不能用会往这个邮件发信心 test@163.com } #配置邮件服务器的信息 notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_MASTER } #声明一个脚本 vrrp_script chk_http_port { #检测本机nginx的服务是否能用的脚本 这个脚本等下要自己编写 script "/usr/local/src/check_nginx_pid.sh" #每隔多长时间自动调用上述脚本 interval 2 #权重 weight 2 } vrrp_instance VI_1 { #state MASTER #配置当前的nginx服务器是主机还是备机 state BACKUP #配置当前nginx服务是是否非抢占模式 #nopreempt #配置心跳网卡的名称 interface ens33 #所有的keepalived的服务器的虚拟化路由都要一致 virtual_router_id 50 #nginx服务器的初始化权重 priority 100 #心跳连接发送的间隔 advert_int 1 #认证方式和认证密码 要保证所有keepalive的服务器的验证方式和密码都一样 authentication { auth_type PASS auth_pass 1111 } #启用上述脚本 track_script { chk_http_port } virtual_ipaddress { #配置了keeplived服务器之后再访问tomcat集群虚拟的ip地址时多少 192.168.17.222 #虚拟ip } }
下一步,写/usr/local/src/check_nginx_pid.sh这个脚本:
#! /bin/bash A=`ps -C nginx --no-header |wc -l` if [ $A -eq 0 ];then systemctl start nginx if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
创建好这个脚本之后 不要忘记修改文件的权限:
下面启动keepalived服务:
systemctl start keepalived
相关推荐:《Linux视频教程》
以上是linux中的nginx是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!