naginx安裝入門

一.nginx是什麼

nginx是一個開源的,支持高性能高併發的www服務和代理服務軟件。它是一個俄羅斯人lgor sysoev開發的,做者將源代碼開源出來供全球使用。
nginx比它大哥apache性能改進許多,nginx佔用的系統資源更少,支持更高的併發鏈接,有更高的訪問效率。
nginx不可是一個優秀的web服務軟件,還能夠做爲反向代理,負載均衡,以及緩存服務使用。
安裝更爲簡單,方便,靈活。
nginx能夠說是很是nb了

  回答:

支持高併發,能支持幾萬併發鏈接
資源消耗少,在3萬併發鏈接下開啓10個nginx線程消耗的內存不到200M
能夠作http反向代理和負載均衡
支持異步網絡i/o事件模型epoll

二.安裝

  1.經過yum 安裝

#配置表 號域名源以後
yum -y install nginx

  2.編譯安裝

    1.卸載yum安裝的

#以前經過yum安裝過了,可是咱們須要本身定製的,因此,要把以前的yum安裝的卸載了
yum remove nginx

    2.安裝依賴

安裝nginx須要的依賴庫
yum install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl openssl-devel
ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 一. gcc 安裝 安裝 nginx 須要先將官網下載的源碼進行編譯,編譯依賴 gcc 環境,若是沒有 gcc 環境,則須要安裝: yum install gcc-c++ 二. PCRE pcre-devel 安裝 PCRE(Perl Compatible Regular Expressions) 是一個Perl庫,包括 perl 兼容的正則表達式庫。nginx 的 http 模塊使用 pcre 來解析正則表達式,
因此須要在 linux 上安裝 pcre 庫,pcre
-devel 是使用 pcre 開發的一個二次開發庫。nginx也須要此庫。命令: yum install -y pcre pcre-devel 三. zlib 安裝 zlib 庫提供了不少種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,因此須要在 Centos 上安裝 zlib 庫。 yum install -y zlib zlib-devel 四. OpenSSL 安裝 OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及 SSL 協議,並提供豐富的應用程序供測試或其它目的使用。 nginx 不只支持 http 協議,還支持 https(即在ssl協議上傳輸http),因此須要在 Centos 安裝 OpenSSL 庫。 yum install -y openssl openssl-devel

    3.安裝軟件

1.下載源碼包
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
2.解壓縮源碼 tar -zxvf nginx-1.12.0.tar.gz
3.指定安裝文件夾以及編譯安裝,開啓nginx狀態監測功能(進入解壓包操做) ./configure --prefix=/opt/nginx1-12/ --with-http_ssl_module --with-http_stub_status_module
make
&& make install
4.啓動nginx,進入sbin目錄,找到nginx啓動命令(cd /opt/nginx1-12)就是要進入上一步指定的安裝文件夾 cd sbin ./nginx #啓動 ./nginx -s stop #關閉 ./nginx -s reload # 平滑重啓 ,修改了nginx.conf以後,能夠不重啓服務,加載新的配置
或者 /opt/nginx1-12/sbin/nginx -s reload  # 絕對路徑平滑重啓

5.nginx目錄結構




6.nginx配置詳解
 

#定義nginx工做進程數
worker_processes  5;
#錯誤日誌
#error_log  logs/error.log;
#http定義代碼主區域
http {
    include       mime.types;
    default_type  application/octet-stream;
    #定義nginx的訪問日誌功能
    #nginx會有一個accses.log功能,查看用戶訪問的記錄
    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;
    keepalive_timeout  65;
    #開啓gzip壓縮傳輸
    gzip  on;
    #虛擬主機1  定義一個 鬥魚網站 
    server {
        #定義nginx的訪問入口端口,訪問地址是  192.168.11.37:80
        listen       80;
        #定義網站的域名www.woshidouyu.tv
        #若是沒有域名,就填寫服務器的ip地址  192.168.11.37
        server_name  www.woshidouyu.tv;
        #nginx的url域名匹配
        #只要請求來自於www.woshidouyu.tv/111111111
        #只要請求來自於www.woshidouyu.tv/qweqwewqe
        #最低級的匹配,只要來自於www.woshidouyu.tv這個域名,都會走到這個location
        location / {
            #這個root參數,也是關鍵字,定義網頁的根目錄
            #以nginx安裝的目錄爲相對路徑  /opt/nginx112/html 
            #能夠自由修改這個root定義的網頁根目錄
            root   html;
            #index參數定義網站的首頁文件名,默認的文件名
            index  index.html index.htm;
        }
        #錯誤頁面的優化(只要是遇到前面4系列的錯誤,就會直接跳轉到相對目錄下的40x.html頁面)
        error_page  400 401  402  403  404   /40x.html;
    }
}
參數詳解
 
 

 7.配置一個網頁html

server {
  listen 80;
  server_name www.qishi2douyu.com;
  #access_log logs/host.access.log main;
  location / {
  root /opt/qishi2douyu/;
  index index.html index.htm;
    }

  #error_page 404 /404.html;
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
  root html;
    }
}

   4.加入環境變量

vim  /etc/profile.d/nginx.sh

加入這句話:
  export PATH=/opt/nginx-112/sbin:$PATH

    

  ·而後執行:python

.  /etc/profile.d/nginx.sh

nginx -s reload

  ·linux

  

 nginx操做通常有:nginx

  -s stopc++

  -s reloadweb

  -s start正則表達式

   都有-s選項算法

 三.多主機配置

  1.在虛擬機機跑三個虛擬主機

在192.168.226.128(個人虛擬機ip)服務器上,跑3個網站出來

 www.qishi2douyu.com

www.qishi2huya.com

www.qishi2jd.com

  2.修改配置文件

server {
        listen       80;
        server_name  www.qishi2douyu.com;
        #access_log  logs/host.access.log  main;
        location / {
            root   /opt/qishi2douyu/;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
    server {
        listen 80;
        server_name www.qishi2huya.com;
        location / {
            root   /opt/qishi2huya/;
            index  index.html index.htm;
        }

    }
    server {
        listen 80;
        server_name www.qishi2jd.com;
        location / {
            root   /opt/qishi2jd/;
            index  index.html index.htm;
        }

    }


   3.爲上面三臺虛擬主機的網頁文件分別創建各自的文件夾和其索引頁index.html

分別在/opt目錄下建立qishi2douyu、qishi2huya、qishi2jd這三個目錄

分別在目錄下建立index.html

  4.平滑重啓(不斷開服務器)

/opt/nginx112/sbin/nginx -s reload  #參數s是執行的意思,會從新加載配置文件

  5.三臺主機分別訪問

#1.修改物理機的hosts文件



www.qishi2douyu.com www.qishi2huya.com www.qishi2jd.com

四.關於nginx的錯誤頁的優化

   1.修改配置文件

vim /opt/nginx112/conf/nginx.conf
在www.qishi2douyu.com虛擬主機下添加如下內容(server代碼塊下)

error_page  400 401 402 403 404   /40x.html;
        location = /40x.html {
            root /opt/qishi2douyu/;
        }

  2. 在/opt/qishi2douyu/目錄下建立40x.html, 把淘寶的錯誤頁面源代碼拷貝過來

vim 40x.html

  3.平滑重啓nginx

/opt/nginx112/sbin/nginx -s reload 

  4. 隨便訪問一個不存在的頁面

http://www.qishi2douyu.com/sladfj243

 

 

五.nginx的日誌功能

  1. 打開nginx配置文件nginx.conf

 vim /opt/nginx-112/conf/nginx.conf

  2. 修改配置文件, 啓用日誌功能(把註釋去掉便可)

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;
 

  3.平滑啓動

/opt/nginx112/sbin/nginx -s reload 

  4.實時輸出日誌信息

tail -f  /opt/nginx112/logs/access.log

  5.訪問咱們的主機就能看到誰訪問了咱們的主機

 

 六.nginx的限制ip訪問

  1.編輯配置文件

 vim /opt/nginx-112/conf/nginx.conf

  2.加入這麼一句話

deny   192.168.226.1;
  
 

 七.ngixn的代理功能

  1.分類

1. 正向代理(用的比較少)
  客戶端掛了代理


2. 反向代理(保護資源服務器不受攻擊)
  服務端掛了代理

  2.簡單實現一個反向代理

    1. 準備兩臺機器,分別裝上nginx

192.168.12.128   # 內部的django服務器
192.168.12.130   # 代理服務器

#就是說:

請求數據: windows ——> 192.168.12.130 ——> 192.168.12.128
返回數據: windows <—— 192.168.12.130 <—— 192.168.12.128sql

   2.在代理服務器的上面修改配置文件(192.168.226.130)

vim /opt/nginx112/conf/nginx.conf
相關文章
相關標籤/搜索