一、部署samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,Samba主要用于Linux或UNIX和Windows系统之间的文件共享。

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

1 准备环境

  =====>part1:设置防火墙以及安全设置

  iptables -F

  #systemctl disable firewalld #开机默认关闭

  #systemctl stop firewalld  #立即关闭

  #systemctl status firewalld

  getenforce

  setenforce 0

  #/etc/sysconfig/selinux

  #SELINUX=disabled

  =====>part2:

  配置ip

2 安装软件包

  yum install samba -y

3 添加系统用户

  Useradd  <用户>

  然后设置Samb用户

  smbpasswd -a <用户>

  因为用户只是用于登录共享盘,所以不应该有登录linux系统的权限,所以可以将用户设置为nologin

  usermod -s /sbin/nologin <username >

  或者创建系统用户时直接创建为:

  useradd -s /sbin/nologin <new username>

  当使用smb用户登入samba server 后,默认能够看到用户的家目录。

4 修改配置文件

  1.  /etc/samba/smb.conf
  2.  
  3. # A publicly accessible directory that is read only, except for users in the
  4.  
  5. # "staff" group (which have write permissions):
  6.  
  7. [public]
  8.  
  9. comment = Public Stuff
  10.  
  11. path = /z
  12.  
  13. public = yes
  14.  
  15. writable = no
  16.  
  17. printable = no
  18.  
  19. write list = +smb

这个writeable是对文件夹中文件有写权限,但是文件夹还应该加上写权限
chmod o+w /z
writeable 是no的时候,下面writelist 中的用户可以写

这样设置下来,除了用户smb其他用户只有查看权限,无法进行写操作(注意用户之前的加号是需要的)。而所有文件均保存在/z路径下。

Ps:更多可以设置项目

comment---------注释说明

path------------分享资源的完整路径名称,除了路径要正确外,目录的权限也要设对

browseable------是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取

printable-------是yes/否no允许打印

hide dot ftles--是yes/否no隐藏隐藏文件

public----------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)

guest ok--------是yes/否no公开共享,若为否则进行身份验证(只有当security = share 时此项才起作用)

read only-------是yes/否no以只读方式共享当与writable发生冲突时也writable为准

writable--------是yes/否no不以只读方式共享当与read only发生冲突时,无视read only

vaild users-----设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)

invalid users---设定只有此名单内的用户不能访问共享资源(拒绝优先)(用户名/@组名)

read list-------设定此名单内的成员为只读(用户名/@组名)

write list------若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)

create mask-----建立文件时所给的权限

directory mask--建立目录时所给的权限

force group-----指定存取资源时须以此设定的群组使用者进入才能存取(用户名/@组名)

force user------指定存取资源时须以此设定的使用者进入才能存取(用户名/@组名)

allow hosts-----设定只有此网段/IP的用户才能访问共享资源

allwo hosts = 网段 except IP

deny hosts------设定只有此网段/IP的用户不能访问共享资源

allow hosts=本网段指定IP指定IP

deny hosts=指定IP本网段指定I

5 启动服务

systemctl restart smb

6 测试

映射网络驱动

\\服务端的ip\用户名 --------》登录到用户的家目录下

\\服务端的ip\public --------》登录到共享目录

补充

net use #查看

net use * /del #清除

二、部署nginx

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。是浏览网页的过程中服务端起作用的软件。

1 准备环境

  =====>part1:

  iptables -F

  #systemctl disable firewalld #开机默认关闭

  #systemctl stop firewalld  #立即关闭

  #systemctl status firewalld

  setenforce 0

  #/etc/sysconfig/selinux

  #SELINUX=disabled

  =====>part2:

  配置ip

2 安装软件包

  二进制方式安装

    yum install epel-release -y #若原yum库中没有该软件则需要安装扩展库

    yum install nginx -y

  源码安装

    yum gcc-* glibc-* make libtool ncurse-devel pcre -y #可能需要安装

    tar xvf nginx.....tar.gz

    cd nginx/

    #./configure --prefix=/usr/local/nginx --with-pcre=/usr/lib64/

    ./configure --prefix=/usr/local/nginx --without-http_rewrite_module

    make

    make install

3 修改配置文件

http://www.cnblogs.com/hunttown/p/5759959.html(这里有相对详细的配置文件说明)

  1. worker_processes ; #worker进程有几条,nginx的进程除了worker还有一个master,一个master多个worker
  2.  
  3. events {
  4. worker_connections ; #每个worker进程有多少线程
  5. }
  6.  
  7. http {
  8. include mime.types; #http的格式信息,在当前目录的mine文件中,更改了conf文件之后需要将这个更改为绝对路径。
  9. default_type application/octet-stream;
  10. #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' #这是日志文件的格式,
  11. # '$status $body_bytes_sent "$http_referer" '
  12. # '"$http_user_agent" "$http_x_forwarded_for"';
  13.  
  14. #access_log logs/access.log main;
  15.  
  16. sendfile on;
  17. #tcp_nopush on;
  18.  
  19. #keepalive_timeout ;
  20. keepalive_timeout ; #超时时间
  21.  
  22. #gzip on;
  23.  
  24. server {
  25. listen ; #端口号
  26. server_name localhost;
  27. location / {
  28. root html; #网站根目录,网页文件的根目录在html(相对路径)下
  29. index index.html index.htm; #这是默认访问目录,在前面的优先级较高,最高的是index.html,接下来是index.htm。index.html之前可以自己加上一个文件测试一下优先级。
  30. }
  31. }
  32. ……

4 启动服务

  /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

  #/usr/local/nginx/sbin/nginx -s stop 关闭

  #/usr/local/nginx/sbin/nginx -s reload 重新加载配置文件

补充:

状态码:

200 访问成功

3开头,重定向

4开头,客户端的问题

5开头,服务端的问题

三、nginx简单举例

http://nginx.org/en/docs/http/load_balancing.html(官方使用文档)

Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,反向代理就相当于多个服务器的中介,用户访问服务器的时候,先访问中介,然后中介再将各个人物交给专用服务器。

默认负载平衡配置

使用nginx进行负载平衡的最简单的配置可能如下所示:

  1. http {
  2. upstream myapp1 {
  3. server srv1.example.com; #例:server 192.168.16.139:8081;
  4. server srv2.example.com;
  5. server srv3.example.com;
  6. }
  7.  
  8. server {
  9. listen ;
  10.  
  11. location / {
  12. proxy_pass http://myapp1; #这是访问的上面设置的三个分服务器的函数
  13. }
  14. }
  15. }

最少连接的负载均衡

另一个负载平衡规则是最少连接的。在一些请求需要更长时间才能完成的情况下,最少连接可以更公正地控制应用程序实例的负载。

使用最少连接的负载平衡,nginx将尽量不要过多的请求来重载忙碌的应用程序服务器,而是将新的请求分发到不太忙的服务器。

在使用 minimum_conn指令作为服务器组配置的一部分时,将激活 nginx中的最小连接负载平衡:

  1. upstream myapp1 {
  2. least_conn;
  3. server srv1.example.com;
  4. server srv2.example.com;
  5. server srv3.example.com;
  6. }

ip-hash哈希平衡

通过循环或最少连接的负载平衡,每个后续客户端的请求都可能分配到不同的服务器。不能保证同一个客户端将始终指向同一个服务器。

如果需要将客户端绑定到特定的应用服务器。换句话说,使客户端的会话“粘滞”或“永久”,总是试图选择特定的服务器 - ip-hash负载平衡机制可以使用的。

使用ip-hash,客户端的IP地址用作哈希键来确定应该为客户端请求选择服务器组中的哪个服务器。此方法确保来自同一客户端的请求将始终被定向到同一台服务器,除非该服务器不可用。

  1. upstream myapp1 {
  2. ip_hash;
  3. server srv1.example.com;
  4. server srv2.example.com;
  5. server srv3.example.com;
  6. }

权重平衡

  1. upstream myapp1 {
  2. server srv1.example.com weight=;
  3. server srv2.example.com;
  4. server srv3.example.com;
  5. }

默认负载平衡配置测试:

测试的时候可以克隆多个虚拟机进行测试,但是也可以从一台虚拟机上开启多个nginx程序模拟多台虚拟机的情况。

Linux程序启动的方式基本上都是程序启动+配置文件,所以可以设置多个配置文件来模拟多台机器。

新建/z/z文件夹下存放反向代理服务器配置:

ps:这里一定要根据nginx安装、启动目录下的配置文件来配置。由于安装设置的原因,我自定义的安装目录也有一套配置文件,但是从这里复制出的配置文件来执行,会报错,无法正常开启nginx。

  1. worker_processes ; #3个worker进程
  2.  
  3. http {
  4.  
  5. include /usr/local/nginx/conf/mime.types; #更改为绝对路径
  6.  
  7. default_type application/octet-stream;
  8.  
  9. upstream myap {
  10.  
  11. server 192.168.64.128:; #默认负载均衡配置
  12.  
  13. server 192.168.64.128:;
  14.  
  15. server 192.168.64.128:;
  16.  
  17. }
  18.  
  19. server {
  20.  
  21. listen ; #默认端口号
  22.  
  23. server_name localhost;
  24.  
  25. location / {
  26.  
  27. proxy_pass http://myap; #这里是用了上面的定义
  28.  
  29. }

三台web服务器设置如下,主要配置端口号和html存放的地址:

  1. server {
  2.  
  3. listen ; #端口号
  4.  
  5. server_name localhost;
  6.  
  7. location / {
  8.  
  9. root /z/; #html文件存放的地址
  10.  
  11. index index.html index.htm;

设置完成分别开启反向代理器以及web服务器

  1. /usr/local/nginx/sbin/nginx -c /z/z/nginx.conf
  2.  
  3. /usr/local/nginx/sbin/nginx -c /z//nginx.conf
  4.  
  5. /usr/local/nginx/sbin/nginx -c /z//nginx.conf
  6.  
  7. /usr/local/nginx/sbin/nginx -c /z//nginx.conf

查看开启的端口,发现80、8081、8082、8083正常开启,说明各项服务器正常工作

打开网页测试效果:

发现三个网页交替出现。

反向代理服务器同时做web服务器:

由于nginx同时可以做代理和转发,所以反向代理的服务器同时也可以做web服务器。

实现方式比较简单,类似上面一个例子,只是代理服务器配置文件上还需要加一段server函数,这个server启用一个新端口、指向web文件即可。具体设置如下:

  1. #user nobody;
  2. worker_processes ;
  3.  
  4. #error_log logs/error.log;
  5. #error_log logs/error.log notice;
  6. #error_log logs/error.log info;
  7.  
  8. #pid logs/nginx.pid;
  9.  
  10. events {
  11. worker_connections ;
  12. }
  13.  
  14. http {
  15. include /usr/local/nginx/conf/mime.types;
  16. default_type application/octet-stream;
  17.  
  18. upstream myap {
  19. server 192.168.16.117:;
  20. server 192.168.16.117:;
  21. }
  22.  
  23. sendfile on;
  24.  
  25. keepalive_timeout ;
  26.  
  27. server {
  28. listen ; #用于转发
  29. server_name localhost;
  30. location / {
  31. proxy_pass http://myap;
  32. }
  33. }
  34.  
  35. server {
  36. listen ; #用于web
  37. server_name localhost;
  38. location / {
  39. root /z/z;
  40. index index.html index.htm;
  41. }
  42. }
  43. }

其他负载平衡模式设置方式类似,平衡方式各有优势。

samba、nginx服务的更多相关文章

  1. Samba服务与Nginx服务

    Samba服务: 1 准备环境 =====>part1: iptables -F 清楚防火墙配置 #systemctl disable firewalld #开机默认关闭 #systemctl ...

  2. samba服务和nginx服务

    一  samba服务 1 samba的功能:samba是一个网络服务器,是连接linux和windows之间共享文件的. 2 samba服务的启动,停止和重启: (1) 要启动Samba服务,只需用户 ...

  3. samba和nginx服务

    samba和nginx服务 1.s配置amba samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件. 1.1配置环境 关闭防火墙和selinux systemc ...

  4. Linux基础系列:常用命令(5)_samba服务与nginx服务

    作业一:部署samba 每个用户有自己的目录,可以浏览内容,也可以删除 所有的用户共享一个目录,只能浏览内容,不能删 安装samba服务 1.准备环境 setenforce 0 2.安装软件包 yum ...

  5. 安装Nginx服务

    Nginx最大特点: 静态小文件(1M),支持高并发,同时占用系统资源很少.3W并发,10个进程,内存150M. Nginx特点: 1.配置简单,灵活,轻量. 2.高并发(静态小文件),静态几万的并发 ...

  6. nginx服务傻瓜搭建

    nginx服务傻瓜搭建 安装步骤: 一.先准备好相关源码包和程序包,如下图 所有包都在云服务器的/src目录下. 二.安装 1.安装nginx服务器,支持vod stream.fileupload c ...

  7. Nginx服务状态监控

    在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可. 1. 模块安装 先使用命令查看是否已经安装这个模块: [ ...

  8. Nginx服务安装配置

    1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...

  9. 9. nginx服务实验笔记

    LNMP安装与配置   Nginx与apache.lighttp性能综合对比,如下图:     一.系统需求: CentOS/RHEL/Fedora/Debian/Ubuntu系统 需要3GB以上硬盘 ...

  10. Python 监控nginx服务是否正常

    Python 监控nginx服务是否正常 #!/usr/bin/env python import os, sys, time from time import strftime while True ...

随机推荐

  1. regcomp/regexec/regfree--POSIX regex functions

    语法 #include <sys/types.h> #include <regex.h> int regcomp(regex_t *preg, const char *rege ...

  2. 解决linux下/etc/rc.local开机器不执行的原因

    前不久因项目需要写了开机启动其他程序的shell脚本,因工作忙,调试完给了技术支持人员,也没去注意过. 到后来,有几台服务器突然被重启了,这时候领导问,怎么开机启动的脚本没起作用,还被批了一顿,哎,做 ...

  3. AppStore苹果应用支付开发(In App Purchase)翻译

    http://yarin.blog.51cto.com/1130898/549141 一.In App Purchase概览 Store Kit代表App和App Store之间进行通信.程序将从Ap ...

  4. 为什么 MongoDB 连接数被用满了?

    使用 MongoDB 时,可能会遇到因为 mongod 连接数用满了,导致客户端无法连接的问题.mongod的最大连接数通过 net.maxIncomingConnections 指定,默认值为100 ...

  5. Swift-8-枚举

    // Playground - noun: a place where people can play import UIKit // 枚举语法 enum SomeEnumeration { // e ...

  6. 封装常用的selenium方法

    package com.yk.userlive.base; import java.net.MalformedURLException;import java.net.URL;import java. ...

  7. 第一百五十四节,封装库--JavaScript,表单验证--提交验证

    封装库--JavaScript,表单验证--提交验证 将表单的所有必填项,做一个判断函数,填写正确时返回布尔值 最后在提交时,判断每一项是否正确,全部正确才可以 提交 html <div id= ...

  8. java算法-数学之美二

    上一章已经说过利用数学思想来解决程序算法问题,实际上就是找规律.这在我们上学时经常遇到,比如给出一段数字,求某一个位置该填写什么数,只要找到规律那就迎刃而解.好了,废话不多说,再来看看案例分析.    ...

  9. java算法-数学之美一

    巧用数学的思想来解决程序算法问题,这样的代码如诗般优美.通过数学思想来看问题,也能将程序简单化.“斐波那契数列”对于java程序员来说一定不陌生.当然这个问题的解决方案也有很多.用一个例子说明数学思想 ...

  10. Chrome 新建自定义标签

    刚开始用Chrome让我最不爽的地方有2个: 1.不能双击关闭标签 2.新建的标签不能是自定义网页 第一个问题通过插件解决了,第二个问题今天也总算找到解决的方法了. 这个方法是自定义插件,需要2个文件 ...