1、环境准备
1.1 准备好三台虚拟机搭建nginx和kafka集群。
1.2 配置好静态ip地址(尽量使用NAT模式)
为了统一,我的使用的是桥接模式。 1、先准备三台虚拟机:
2、然后修改为桥接模式(三台要统一修改)。
在箭头处点击设置:
3、现在要进行静态ip地址的设置:
①先查看ip地址:ip a
②然后查看网关是多少:ip r
[root@nginx-kafka01 ~]# ip a [root@nginx-kafka01 ~]# ip r
③配置好dns:
[root@nginx-kafka03 ~]# cat /etc/resolv.conf # Generated by NetworkManager nameserver 114.114.114.114
④编辑网卡配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
dns解析:
1、浏览器的缓存
2、本地hosts文件—Linux(/etc/hosts)
3、找本地域名服务器—Linux(/etc/resolv.conf)
1.3 修改主机名:三台都需要修改,然后进行序号01、02、03
第一台虚拟机
[root@nginx-kafka01 etc]# vim hostname [root@nginx-kafka01 etc]# cat hostname nginx-kafka01
第二台虚拟机
[root@nginx-kafka02 etc]# vim hostname [root@nginx-kafka02 etc]# cat hostname nginx-kafka02
第三台虚拟机
[root@nginx-kafka03 etc]# vim hostname [root@nginx-kafka03 etc]# cat hostname nginx-kafka03
1.4 每一台机器上都写好域名解析
ip地址根据自己的进行添加,比如我的是:192.168.0.94、192.168.0.95 、 192.168.0.96
vim /etc/hostname 192.168.0.94 nginx-kafka01 192.168.0.95 nginx-kafka02 192.168.0.96 nginx-kafka03
1.5 安装基本软件
yum install wget lsof vim -y
1.6 安装时间同步服务
yum -y install chrony systemctl enable chronyd 设置为开机自启 扩展知识:disable:为开机不自启、关闭开机自启。
设置时区:
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
1.7 关闭防火墙
[root@nginx-kafka01 ~]# systemctl stop firewalld [root@nginx-kafka01 ~]# systemctl disable firewalld
关闭selinux服务
将/etc/selinux/config文件里的SELINUX设置为disabled
vim /etc/selinux/config SELINUX=disabled
selinux关闭之后,需要重启机器。
selinux是什么呢?
selinux是Linux内核里一个跟安全相关的子系统,一般日常工作里都是关闭的。
2 、nginx搭建
2.1 安装好epel源:
yum install epel-release -y
2.2 安装nginx
yum install nginx -y
2.3 启动nginx
systemctl start nginx
2.4 设置为开机自启
[root@nginx-kafka01 system]# systemctl enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.
设置开机自启之后,会在/etc/systemd/system/multi-user.target.wants下创建一个nginx.service文件。
2.5 编辑配置文件
[root@nginx-kafka01 ~]# cd /etc/nginx/
[root@nginx-kafka01 nginx]# ls
conf.d fastcgi.conf.default koi-utf mime.types.default scgi_params uwsgi_params.default
default.d fastcgi_params koi-win nginx.conf scgi_params.default win-utf
fastcgi.conf fastcgi_params.default mime.types nginx.conf.default uwsgi_params
其中nginx的主配置文件为:nginx.conf
vim nginx.conf :
# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ # 全局块 user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; #events块 events { worker_connections 1024; } #http块 http { #http全局块 #log_format 日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #日志存放文件 access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; #serevr块 server { #server全局块 listen 80; listen [::]:80; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { # location块 } error_page 500 502 503 504 /50x.html; location = /50x.html { } } # Settings for a TLS enabled server. # # server { # listen 443 ssl http2; # listen [::]:443 ssl http2; # server_name _; # root /usr/share/nginx/html; # #http全局块 # ssl_certificate "/etc/pki/nginx/server.crt"; # ssl_certificate_key "/etc/pki/nginx/private/server.key"; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 10m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # # # Load configuration files for the default server block. # include /etc/nginx/default.d/*.conf; # # error_page 404 /404.html; # location = /40x.html { # } # # error_page 500 502 503 504 /50x.html; # location = /50x.html { # } # } }
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
2、event块:配置影响nginx服务器与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。
5、location:配置请求的路由,以及各种页面的处理情况。
2.6 修改配置文件
vim nginx.conf
将 :
listen 80 default_server;
修改成:
listen 80;
虚拟主机的配置:
vim /etc/nginx/conf.d/sc.conf
server { listen 80 default_server; #监听的端口 server_name www.sc.com; #使用域名访问,使用www.sc.com进行访问,就往下执行。 #但是如果使用ip地址访问的话,会去执行绑定的server下的default root /usr/share/nginx/html; #存放网页的根目录 access_log /var/log/nginx/sc/access.log main; #日志存放路径 location / { } } #可以添加多个 server { listen 80 default_server; #监听的端口 server_name www.sc2.com; #使用域名访问 root /usr/share/nginx/html; access_log /var/log/nginx/sc/access.log main; location / { } }
修改文件之后需要重新加载或者重启服务器。
2.7 语法检测
[root@nginx-kafka01 html]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: [emerg] open() “/var/log/nginx/sc/access.log” failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
如果出现说创建失败,需要先新建sc文件夹:
[root@nginx-kafka01 html]# mkdir /var/log/nginx/sc
[root@nginx-kafka01 html]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载nginx
nginx -s reload
nginx做web网站的话,它只能支持静态网页,所以nginx用于做反向代理和负载均衡。
然后查看nginx服务是否启动,可以去网站上输入自己的ip地址:
就会出现以下页面,表示启动成功:
或者直接在命令行输入:curl + 同一网段的其他ip地址:
root@nginx-kafka01 nginx]# curl 192.168.2.33
this is sc
welcome
hlhdlfhsdlkjhsdkjhfsdjk
访问成功之后,nginx的日志文件之中就会多一条访问记录:可以看到最后一行多了一条访问记录:
[root@nginx-kafka01 etc]# cat /var/log/nginx/access.log 192.168.2.123 - - [15/Jul/2022:11:49:28 +0800] "GET / HTTP/1.1" 200 615 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49" "-" 192.168.2.123 - - [15/Jul/2022:11:49:28 +0800] "GET /favicon.ico HTTP/1.1" 404 555 "http://192.168.2.152/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49" "-" 192.168.2.123 - - [15/Jul/2022:11:51:21 +0800] "GET /sc.html HTTP/1.1" 200 16 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49" "-" 192.168.2.33 - - [15/Jul/2022:11:56:36 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.29.0" "-" 192.168.2.123 - - [15/Jul/2022:12:02:38 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49" "-" 192.168.2.123 - - [15/Jul/2022:12:04:15 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49" "-" 192.168.2.33 - - [15/Jul/2022:12:17:08 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.29.0" "-"
curl是什么?
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
日志收集平台项目nginx、kafka、zookeeper、filebeat搭建的基本配置(2)+https://developer.aliyun.com/article/1557832