samba、nginx服務

1、部署sambahtml

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成,Samba主要用於Linux或UNIX和Windows系統之間的文件共享。linux

SMB(Server Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。nginx

1 準備環境web

  =====>part1:設置防火牆以及安全設置安全

  iptables -F服務器

  #systemctl disable firewalld #開機默認關閉網絡

  #systemctl stop firewalld  #當即關閉app

  #systemctl status firewalld負載均衡

  getenforcetcp

  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 修改配置文件

 /etc/samba/smb.conf

# A publicly accessible directory that is read only, except for users in the

# "staff" group (which have write permissions):

 

[public]

       comment = Public Stuff

       path = /z

       public = yes

       writable = no

       printable = no

       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 #清除

 

2、部署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(這裏有相對詳細的配置文件說明)

worker_processes  1;                #worker進程有幾條,nginx的進程除了worker還有一個master,一個master多個worker


events {
    worker_connections  1024;               #每一個worker進程有多少線程
}


http {
include       mime.types;                            #http的格式信息,在當前目錄的mine文件中,更改了conf文件以後須要將這個更改成絕對路徑。
default_type  application/octet-stream;
    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;                       #超時時間

    #gzip  on;

    server {
        listen       80;                           #端口號
        server_name  localhost;
        location / {
            root   html;                          #網站根目錄,網頁文件的根目錄在html(相對路徑)下
            index  index.html index.htm;          #這是默認訪問目錄,在前面的優先級較高,最高的是index.html,接下來是index.htm。index.html以前能夠本身加上一個文件測試一下優先級。
        }
}
……

 

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開頭,服務端的問題

 

 

3、nginx簡單舉例

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

Nginx ("engine x") 是一個高性能的HTTP和反向代理服務器,反向代理就至關於多個服務器的中介,用戶訪問服務器的時候,先訪問中介,而後中介再將各我的物交給專用服務器。

 

默認負載平衡配置

 使用nginx進行負載平衡的最簡單的配置可能以下所示:

http {
    upstream myapp1 {
        server srv1.example.com;           #例:server 192.168.16.139:8081;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;     #這是訪問的上面設置的三個分服務器的函數
        }
    }
}

最少鏈接的負載均衡

 另外一個負載平衡規則是最少鏈接的。在一些請求須要更長時間才能完成的狀況下,最少鏈接能夠更公正地控制應用程序實例的負載。

 使用最少鏈接的負載平衡,nginx將盡可能不要過多的請求來重載忙碌的應用程序服務器,而是將新的請求分發到不太忙的服務器。

 在使用 minimum_conn指令做爲服務器組配置的一部分時,將激活 nginx中的最小鏈接負載平衡:

    upstream myapp1 {
        least_conn;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

ip-hash哈希平衡

經過循環或最少鏈接的負載平衡,每一個後續客戶端的請求均可能分配到不一樣的服務器。不能保證同一個客戶端將始終指向同一個服務器。

若是須要將客戶端綁定到特定的應用服務器。換句話說,使客戶端的會話「粘滯」或「永久」,老是試圖選擇特定的服務器 - ip-hash負載平衡機制可使用的。

使用ip-hash,客戶端的IP地址用做哈希鍵來肯定應該爲客戶端請求選擇服務器組中的哪一個服務器。此方法確保來自同一客戶端的請求將始終被定向到同一臺服務器,除非該服務器不可用。

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

權重平衡

    upstream myapp1 {
        server srv1.example.com weight=3;
        server srv2.example.com;
        server srv3.example.com;
    }

 

 

默認負載平衡配置測試:

測試的時候能夠克隆多個虛擬機進行測試,可是也能夠從一臺虛擬機上開啓多個nginx程序模擬多臺虛擬機的狀況。

Linux程序啓動的方式基本上都是程序啓動+配置文件,因此能夠設置多個配置文件來模擬多臺機器。

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

ps:這裏必定要根據nginx安裝、啓動目錄下的配置文件來配置。因爲安裝設置的緣由,我自定義的安裝目錄也有一套配置文件,可是從這裏複製出的配置文件來執行,會報錯,沒法正常開啓nginx。

 

worker_processes  3;                                    #3個worker進程

http {

    include       /usr/local/nginx/conf/mime.types;      #更改成絕對路徑

    default_type  application/octet-stream;

 

upstream myap {

        server 192.168.64.128:8081;                     #默認負載均衡配置

        server 192.168.64.128:8082;

        server 192.168.64.128:8083;

    }

 

    server {

        listen       80;                                 #默認端口號

        server_name  localhost;

 

        location / {

            proxy_pass http://myap;                      #這裏是用了上面的定義

        }

 

 

三臺web服務器設置以下,主要配置端口號和html存放的地址:

server {

        listen       8081;                    #端口號

        server_name  localhost;

        location / {

            root   /z/1;                       #html文件存放的地址

            index  index.html index.htm;

 

 

設置完成分別開啓反向代理器以及web服務器

 

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

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

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

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

 查看開啓的端口,發現80、808一、808二、8083正常開啓,說明各項服務器正常工做

打開網頁測試效果:

發現三個網頁交替出現。

反向代理服務器同時作web服務器:

因爲nginx同時能夠作代理和轉發,因此反向代理的服務器同時也能夠作web服務器。

實現方式比較簡單,相似上面一個例子,只是代理服務器配置文件上還須要加一段server函數,這個server啓用一個新端口、指向web文件便可。具體設置以下:

#user  nobody;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /usr/local/nginx/conf/mime.types;
    default_type  application/octet-stream;

upstream myap {
        server 192.168.16.117:8080;
        server 192.168.16.117:8081;
    }

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       80;                          #用於轉發
        server_name  localhost;
        location / {
            proxy_pass http://myap;
        }
    }

    server {
        listen       8080;                         #用於web
        server_name  localhost;
        location / {
            root   /z/z;
            index  index.html index.htm;
        }
    }
}

 

其餘負載平衡模式設置方式相似,平衡方式各有優點。

相關文章
相關標籤/搜索