Linux에서 nginx는 고성능 HTTP 및 역방향 프록시 웹 서버입니다. 이는 고성능 http 서버, 역방향 프록시 서버 및 이메일(IMAP/POP3) 프록시 서버입니다.
이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.
nginx
Apache 정적 리소스 서버란?
nginx는 역방향 프록시 정적 리소스 서버입니다.
nginx는 C 언어로 개발된 고성능 http 서버이자 역방향 프록시 서버입니다. Nginx는 고성능 http 서버/역방향 프록시 서버 및 이메일(IMAP/POP3) 프록시 서버입니다. 러시아 프로그래머 Igor Sysoev가 개발한 nginx의 공식 테스트는 50,000개의 동시 연결을 지원할 수 있으며 CPU, 메모리 및 기타 리소스를 매우 적게 소모하며 매우 안정적으로 실행됩니다.
정방향 프록시:
역방향 프록시:
역방향 프록시는 일반적으로 요청을 분산하고 로드 밸런싱을 달성하기 위해 서버 측에서 사용됩니다.
Nginx 응용 시나리오
1.http 서버. Nginx는 http 서비스를 독립적으로 제공할 수 있는 http 서비스입니다. 정적 웹 서버로 사용할 수 있습니다.
2. 가상 호스트. 하나의 서버에서 여러 웹사이트를 가상화할 수 있습니다. 예를 들어 개인 웹사이트에서 사용하는 가상 호스트입니다.
포트 기준, 다양한 터미널
도메인 이름 기준, 다양한 도메인 이름
3. 웹 사이트 방문 횟수가 일정 수준에 도달하고 단일 서버가 사용자 요청을 충족할 수 없는 경우 여러 서버 클러스터가 필요하며 nginx를 역방향 프록시로 사용할 수 있습니다. 그리고 여러 서버가 부하를 균등하게 공유할 수 있어 특정 서버의 높은 부하로 인한 다운타임이 없으며 특정 서버가 유휴 상태가 되지 않습니다.
1. nginx 서비스에 필요한 플러그인을 설치하세요
yum install -y yum-utils
2. nginx를 설치하세요
공식 yum 소스에는 nginx가 없지만 할 수 있습니다. nginx의 yum 설치를 구현하기 위해 nginx를 로컬로 구성합니다.
그런 다음 nginx.repo 파일을 만듭니다:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
설치:
nginx 서비스 관리 명령:
systemctl start/stop/restart/status nginx
3 문을 닫아야 해 리눅스 운영 체제의 selinux 서비스
selinux는 linux
의 보안 서비스 제품군입니다. vi /etc/selinux/config 파일을 수정하고 다음 내용을 수정합니다.
수정 후 리눅스를 다시 시작해야 합니다. .
nginx 구성 파일:
앞으로 자주 수정하는 구성 파일은 /etc/nginx/conf.d/default.conf:
이후 다운로드 및 압축 패키지는 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视频教程》
위 내용은 리눅스에서 nginx 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!