Linux基础服务
作业一:nginx服务
1、二进制安装nginx包
[root@bogon ~]# systemctl disable firewalld #关闭Firewalld自启动
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@bogon ~]# systemctl stop firewalld #关闭firewalld
[root@bogon ~]# yum install nginx -y #安装nginx服务
2、作为web服务修改配置文件
[root@bogon ~]# egrep -v "^$|^#|#" /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
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 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
root /data/www/html;
index index.html;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
} [root@bogon ~]# mkdir -p /data/www/html
[root@bogon ~]# echo "welcome oldgirl" > /data/www/html/index.html
3、让配置生效,验证配置
[root@bogon ~]# /usr/sbin/nginx -t #检查配置是否正确
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@bogon ~]# systemctl start nginx #启动nginx服务 [root@bogon ~]# systemctl status nginx #查看nginx启动状态
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Active: active (running) since Mon 2017-03-20 15:23:29 CST; 44s ago
Process: 3072 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 3069 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 3068 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 3075 (nginx)
CGroup: /system.slice/nginx.service
├─3075 nginx: master process /usr/sbin/nginx
└─3076 nginx: worker process Mar 20 15:23:29 bogon systemd[1]: Starting The nginx HTTP and reverse proxy server...
Mar 20 15:23:29 bogon nginx[3069]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Mar 20 15:23:29 bogon nginx[3069]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Mar 20 15:23:29 bogon systemd[1]: Failed to read PID from file /run/nginx.pid: Invalid argument
Mar 20 15:23:29 bogon systemd[1]: Started The nginx HTTP and reverse proxy server.
#使用浏览器验证是否可以正常访问web

作业二:nfs服务
拓扑图:

1、二进制安装nfs
[root@nfs-server ~]# yum install rpcbind nfs-utils -y #NFS服务端和客户端都装。
2、作为共享存储挂载在三台web的网站根目录下
[root@nfs-server ~]# mkdir /share #创建挂载目录
[root@nfs-server ~]# cat /etc/exports #配置NFS SERVER
/share 192.168.152.0/24(rw,sync,fsid=0) # 启动开机自启:
[root@nfs-server ~]# systemctl enable nfs-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@nfs-server ~]# systemctl enable rpcbind.service # 启动服务(必须先启动rpcbind服务):
[root@nfs-server ~]# systemctl start rpcbind.service
[root@nfs-server ~]# systemctl start nfs-server.service # 确定NFS服务器启动成功:
[root@nfs-server ~]# rpcinfo
program version netid address service owner
100000 4 tcp6 ::.0.111 portmapper superuser
100000 3 tcp6 ::.0.111 portmapper superuser
100000 4 udp6 ::.0.111 portmapper superuser
100000 3 udp6 ::.0.111 portmapper superuser
100000 4 tcp 0.0.0.0.0.111 portmapper superuser
100000 3 tcp 0.0.0.0.0.111 portmapper superuser
100000 2 tcp 0.0.0.0.0.111 portmapper superuser
100000 4 udp 0.0.0.0.0.111 portmapper superuser
100000 3 udp 0.0.0.0.0.111 portmapper superuser
100000 2 udp 0.0.0.0.0.111 portmapper superuser
100000 4 local /var/run/rpcbind.sock portmapper superuser
100000 3 local /var/run/rpcbind.sock portmapper superuser
100005 1 udp 0.0.0.0.78.80 mountd superuser
100005 1 tcp 0.0.0.0.78.80 mountd superuser
100005 1 udp6 ::.78.80 mountd superuser
100005 1 tcp6 ::.78.80 mountd superuser
100005 2 udp 0.0.0.0.78.80 mountd superuser
100005 2 tcp 0.0.0.0.78.80 mountd superuser
100024 1 udp 0.0.0.0.129.33 status 29
100005 2 udp6 ::.78.80 mountd superuser
100024 1 tcp 0.0.0.0.171.119 status 29
100024 1 udp6 ::.206.85 status 29
100005 2 tcp6 ::.78.80 mountd superuser
100005 3 udp 0.0.0.0.78.80 mountd superuser
100024 1 tcp6 ::.207.20 status 29
100005 3 tcp 0.0.0.0.78.80 mountd superuser
100005 3 udp6 ::.78.80 mountd superuser
100005 3 tcp6 ::.78.80 mountd superuser
100003 3 tcp 0.0.0.0.8.1 nfs superuser
100003 4 tcp 0.0.0.0.8.1 nfs superuser
100227 3 tcp 0.0.0.0.8.1 nfs_acl superuser
100003 3 udp 0.0.0.0.8.1 nfs superuser
100003 4 udp 0.0.0.0.8.1 nfs superuser
100227 3 udp 0.0.0.0.8.1 nfs_acl superuser
100003 3 tcp6 ::.8.1 nfs superuser
100003 4 tcp6 ::.8.1 nfs superuser
100227 3 tcp6 ::.8.1 nfs_acl superuser
100003 3 udp6 ::.8.1 nfs superuser
100003 4 udp6 ::.8.1 nfs superuser
100227 3 udp6 ::.8.1 nfs_acl superuser
100021 1 udp 0.0.0.0.220.240 nlockmgr superuser
100021 3 udp 0.0.0.0.220.240 nlockmgr superuser
100021 4 udp 0.0.0.0.220.240 nlockmgr superuser
100021 1 tcp 0.0.0.0.156.92 nlockmgr superuser
100021 3 tcp 0.0.0.0.156.92 nlockmgr superuser
100021 4 tcp 0.0.0.0.156.92 nlockmgr superuser
100021 1 udp6 ::.211.174 nlockmgr superuser
100021 3 udp6 ::.211.174 nlockmgr superuser
100021 4 udp6 ::.211.174 nlockmgr superuser
100021 1 tcp6 ::.171.11 nlockmgr superuser
100021 3 tcp6 ::.171.11 nlockmgr superuser
100021 4 tcp6 ::.171.11 nlockmgr superuser
[root@nfs-server ~]#
[root@nfs-server ~]# exportfs
/share 192.168.152.0/24 # 默认使用showmount -e 查看自己共享的服务,需要DNS能解析,不然容易报错。
# 此处添加HOSTS本地解析。
[root@nfs-server ~]# echo "192.168.152.134 nfs-server" >> /etc/hosts
[root@nfs-server ~]# showmount -e
Export list for nfs-server:
/share 192.168.152.0/24 # 客户端挂载:
[root@web01 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/
[root@web02 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/
[root@web03 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/ [root@nfs-server ~]# showmount -a #显示已经与客户端连接上的目录信息
All mount points on nfs-server:
192.168.152.135:/share
192.168.152.136:/share
192.168.152.137:/share
3、实现在任意一台web上修改的结果,其余两台都可以看到
# others用户添加w权限
[root@nfs-server ~]# chmod -R o+w /share/
[root@nfs-server ~]# ll -d /share/
drwxr-xrwx 2 root root 23 Mar 20 16:38 /share/ # 测试结果
[root@web01 ~]# echo "welcome luchuangao" > /data/www/html/test.html
[root@web02 ~]# cat /data/www/html/test.html
welcome luchuangao
[root@web03 ~]# cat /data/www/html/test.html
welcome luchuangao
作业三:nginx反向代理三台web

参考链接:http://nginx.org/en/docs/http/load_balancing.html
1、实现基于轮询的方式调度三台web,并验证结果
[root@nfs-server ~]# !egrep
egrep -v "^$|^#|#" /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
upstream luchuangao {
server 192.168.152.135:80;
server 192.168.152.136:80;
server 192.168.152.137:80;
}
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 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://luchuangao;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
} [root@nfs-server ~]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nfs-server ~]# systemctl reload nginx
[root@web01 ~]# echo "web01" > /data/www/html/index.html
[root@web02 ~]# echo "web02" > /data/www/html/index.html
[root@web03 ~]# echo "web03" > /data/www/html/index.html
# 浏览器进行验证



2、实现基于权重的方式调度三台web,并验证结果
[root@nfs-server ~]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nfs-server ~]# /usr/sbin/nginx -s reload [root@nfs-server ~]# egrep -v "#|^$|^#" /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
upstream luchuangao {
server 192.168.152.135:80 weight=3;
server 192.168.152.136:80;
server 192.168.152.137:80;
}
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 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://luchuangao;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
3、实现基于hash的方式调用三台web,并验证结果
[root@nfs-server ~]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@nfs-server ~]# /usr/sbin/nginx -s reload [root@nfs-server ~]# egrep -v "#|^$|^#" /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
upstream luchuangao {
ip_hash;
server 192.168.152.135:80;
server 192.168.152.136:80;
server 192.168.152.137:80;
}
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 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://luchuangao;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}
作业四:nginx反向代理+三台web+nfs共享存储实现集群配置
# 在各个web服务器上挂载nfs
[root@web01 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/
[root@web02 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/
[root@web03 ~]# mount -t nfs 192.168.152.134:/share /data/www/html/
[root@web01 ~]# echo "nfs ok" > /data/www/html/index.html
# 浏览器访问进行验证

作业五:源码安装nginx,并按照作业一描述的那样去测试使用
#编译安装nginx
[root@nfs-server ~]# yum install gcc-* glibc-* openssl openssl-devel pcre pcre-devel zlib zlib-devel -y
[root@nfs-server ~]# wget -q http://nginx.org/download/nginx-1.10.3.tar.gz
[root@nfs-server ~]# ls nginx-1.10.3.tar.gz
nginx-1.10.3.tar.gz
[root@nfs-server ~]# tar -xf nginx-1.10.3.tar.gz
[root@nfs-server ~]# cd nginx-1.10.3/
[root@nfs-server nginx-1.10.3]# ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module
[root@nfs-server nginx-1.10.3]# make && make install
# 配置nginx.conf
[root@nfs-server ~]# cat /usr/local/nginx/nginx.conf|egrep -v "^$|^#|#"
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /data/www/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
# 验证
[root@nfs-server ~]# /usr/local/nginx/nginx -t
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful
[root@nfs-server ~]# /usr/local/nginx/nginx #启动nginx服务
[root@nfs-server ~]# echo 'goodbye oldboy' > /data/www/html/index.html
#使用浏览器进行验证

参考链接:http://www.cnblogs.com/linhaifeng/articles/6045600.html#_label19
Linux基础服务的更多相关文章
- Linux基础服务——Bind DNS服务 Part2
Linux基础服务--Bind DNS服务 Part2 DNS反向解析与区域传送 实验环境延续Part1的实验环境. 反向区域配置 正向解析是域名到IP地址的映射,反向解析则是IP地址到域名的解析,在 ...
- Linux基础服务——Bind DNS服务 Part1
Linux基础服务--Bind DNS服务 Part1 DNS正向解析 实验环境: CentOS8.3.2011 IP地址:192.168.100.50 VMware虚拟环境 NAT网段 需要解析的区 ...
- Linux基础服务搭建综合
Linux服务综合搭建的文章目录 =============================================== 1.foundation创建yum仓库 2.部署DNS 3.将YUM源 ...
- Linux网络服务01——Linux网络基础设置
Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...
- Day 6 Linux基础之正文处理、vi编辑和系统初始化和服务
Linux基础之正文处理.vi编辑和系统化服务 一.正文处理命令及tar命令 1.归档 定义:归档(archiving)就是将许多文件(或目录)打包成一个文件. 目的:归档的目的就是方便备份.还原及文 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- 大数据每日干货第四天(linux基础之一目录结构与常用命令)
为了和qq空间同步,也写的第四天,前面几天明天会发布,本来打算把每天学的东西记录下来,通过朋友给的建议要发的话稍微系统化下,从大数据需要的linux基础,到离线数据分析包括hadoop. ...
- Linux课程实践一:Linux基础实践(SSH)
一.SSH服务 1. 安装SSH (1)查看是否已经安装过ssh服务 rpm -qa |grep ssh (2)进行安装 sudo apt-get install openssh-server Ubu ...
- 《Linux多线程服务端编程:使用muduo C++网络库》上市半年重印两次,总印数达到了9000册
<Linux多线程服务端编程:使用muduo C++网络库>这本书自今年一月上市以来,半年之内已经重印两次(加上首印,一共是三次印刷),总印数达到了9000册,这在技术书里已经算是相当不错 ...
随机推荐
- [k8s]k8s api-server启动systemd参数分析
默认2个参数就可以启动(必需) kube-apiserver \ --service-cluster-ip-range=10.254.0.0/16 \ --etcd-servers=http://19 ...
- dmesg命令应用
昨晚上线服务的时候,看log偶然发现服务在启动半小时左右就会被supervise重新拉起,也没有core.通过重新启动的服务发现内存飙涨,且持续增加,怀疑是内存打满,进程被kill了. 其实怀疑是正确 ...
- WEEX快速入门
WEEX快速入门 WEEX 是阿里推送的一款基于Node.js,轻量级的移动端跨平台动态性技术解决方案,用于构建原生的速度的跨平台APP. 1. 搭建WEEX环境 1.1 首先下载安装Node.js, ...
- glibc/libc/blib区别
转自:http://blog.csdn.net/yasi_xi/article/details/9899599 [glibc 和 libc] glibc 和 libc 都是 Linux 下的 C 函数 ...
- Powershell对象选择,排序和变量存储
PowerShell基础教程(17)——对象的选择.排序和变量存储 可以使用 Select-Object cmdlet 来创建新的.自定义的 Windows PowerShell 对象,后者包含的属性 ...
- Hive分析窗体函数之SUM,AVG,MIN和MAX
行 AVG(pnum) OVER(PARTITION BYpolno ORDER BY createtime ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOW ...
- 如何在线制作gif图片?
最近想做个gif在线制作的网站,所以研究下了imagemagick和graphicsmagick制作gif图片站已经做出来了:有兴趣的朋友可以先看看http://www.sosogif.com/mak ...
- java删除递归文件夹及文件夹下文件
public static void delUrlLocalFile(String urlPath) { File file = new File(urlPath); if(file.isDirect ...
- 使用AccessibilityService实现微信自己主动抢红包
近期要实现微信自己主动抢红包的功能.使用AccessibilityService来开发,这里主要写一下逻辑以及注意点. 注意点 1.搜索keyword 我们实现某个功能比方点击等须要找到相应的对象然后 ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接https://www.cnblogs.com/kevingrace/p/5651447.html
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已, ...