nginx 是什么?
Nginx是一个web服务器和方向代理服务器,用于HTTP
、HTTPS
、SMTP
、POP3
和IMAP
协议。
nginx的安装
1、首先需要安装需要的依赖
apt-get install libpcre3 libpcre3-dev
apt-get install zlib1g zlib1g-dev
sudo apt-get install openssl
sudo apt-get install libssl-dev
2、到官网下载安装包
http://nginx.org/download/ 版本没有深入研究~
cd /usr/local
mkdir nginx
cd nginx
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
3、编译nginx
# 进入nginx目录
cd /usr/local/nginx/nginx-1.13.7
./configure
make
make &&make install
4、验证是否安装成功
输入 ./nginx -v
输出显示:nginx version: nginx/1.20.1 表示安装成功。
或者 输入 ./nginx
到浏览器输入ip地址出现这个界面,表示成功。
nginx 的常用命令
cd /usr/local/nginx/nginx-1.13.7
启动 nginx ./nginx
停止 nginx ./nginx -s stop
重启 nginx ./nginx -s reload
nginx 的使用方法
nginx 反向代理
在这里我们使用一个例子来说明,我们安装一下tomcat服务器,tomcat 服务器的安装方法:
tomcat 服务器需要安装需要java环境,具体参见上一篇博客。
tomcat 安装包的网址为 : https://tomcat.apache.org/download-80.cgi,选择加深部分下载。
tomcat 里面conf/server.xml配置文件需要修改一下。
分别准备两个文件夹
8080 和 8081
8080 文件夹下配置默认即可。
8081 文件夹下修改一下conf/server.xml。
修改三个地方:
<Server port="8015" shutdown="SHUTDOWN"> 由8005 改成 8015
<Connector port="8081" protocol="HTTP/1.1" 由8080改成8081
<Connector protocol="AJP/1.3"
address="::1"
port="8019"
redirectPort="8443" /> 由8009改成8019
下载完成后拷贝到一个路径下。
sudo cp apache-tomcat-8.5.31.tar.gz /usr/local/
解压安装。运行bin下面的./startup.sh tomcat 服务就开启了。
我们在网址输入IP:8080 就可以访问到tomcat服务器,这里8080好像是tomcat 服务器默认的网址。注意:我们需要查看防火墙开发的端口 ,通过firewall-cmd --list-all 这个命令。
设置开放端口
firewall-cmd --add-port=8030/tcp --permanent
重启防火墙
firewall-cmd --reload
关闭防火墙端口
firewall-cmd --remove-port=8080/tcp --permanent
现在回到反向代理,方向代理的设置主要是修改配置文件。
方法修改配置文件
cd /usr/local/nginx/nginx-1.13.7/conf
路径下包含 nginx.conf
打开nginx.conf 文件,vim nginx.conf
nginx.conf 包括三部分内容,分别是全局块(红色),主要影响服务器整体运行的指令。
events块(绿色) 主要影响nginx 服务器与网络用户的连接。
http块(蓝色) nginx 配置最频繁的块,包括反向代理、负载均衡、动静分离、主备等~
这部分包含http全局块和server块。
nginx配置实例1-反向代理1 -输入192.168.33.91即可访问127.0.0.1:8080启动的服务。
在http 块当中添加server 块,写法如下:
server {
listen 80;
server_name 192.168.33.91;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
nginx配置实例1-反向代理2-输入192.168.33.91:9001 即可访问127.0.0.1:8080/edu下面的网页或者是127.0.0.1:8081/vod 下面的网页。
在http 块当中添加server 块,写法如下:
server {
listen 9001;
server_name 192.168.33.91;
location ~ /edu/ {
proxy_pass http://127.0.0.1:8080;
}
location ~ /vod/ {
proxy_pass http://127.0.0.1:8081;
}
}
nginx-配置实例2-负载均衡
upstream myserver{
#ip_hash;
server 192.168.33.91:8081;
server 192.168.33.91:8080;
}
server {
listen 80;
server_name 192.168.33.91;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
proxy_pass http://myserver;
#proxy_connect_timeout 20;
index index.html index.htm;
}
}
nginx-配置实例3-主备模式-主服务器挂点之后,备服务器可以使用
步骤1:安装keepalived
sudo apt install keepalived
在 /etc 下面 会自动生成keepalived文件夹,自己编写keepalived.conf 即可。
步骤2 :准备两台服务器,一台主服务器,一台备用服务器。
分别安装 nginx 和 keepalived
主服务器的配置,从服务器的配置黄色部分不一样,其他一样。
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.33.92 #ip地址
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh" # 检测脚本
interval 2 #检测脚本间隔的时间
weight 2
}
vrrp_instance VI_1 {
state MASTER #备份服务器上将 MASTER 改为 BACKUP
interface ens3 #网卡
virtual_router_id 51 #主、备机的virtual_router_id 必须相同
priority 100 #101为“主”,100为“从”
advert int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.17.50 #对外虚拟IP
}
}
步骤3 在 /usr/local/src/nginx_check.sh
nginx_check.sh 用来检测主服务器是否挂掉,主服务器挂掉,启动从服务器。
#!/bin/bash
A= `ps -C nginx -no-header |wc -l`
if [ $A -eq 0];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
步骤4
启动 nginx
启动 keepalived 采用命令systemctl start keepalived
步骤5 浏览器输入虚拟ip 即可访问。