Nginx進階

常見的web架構php

LAMP - Linux +Apache +MySQL + PHPhtml

LNMP - Linux +Nginx + Mysql + PHPnginx

RHEL開源  Linux系統  RHEL CentOS Fedora 開源 --- 開放源代碼web

 

NginxApache自己對動態網頁沒有處理能力 ----> PHPsql

 

Apache + PHP ---->apxs命令 ---> DSO方式 libphp5.so模塊插入到apache 配置中apache

Nginx + PHP --->經過php-fpm的服務 默認9000的端口windows

 

nginx處理高併發針對靜態小文件(1M 3W併發 - Nginx 消耗內存資源150M瀏覽器

 

 

官方網站: www.nginx.org Nginx是俄羅斯的站點開發安全

Nginx  國內用的多性能優化

Apache  全球最多

Lighttpd 貼吧 豆瓣

Tengine 淘寶 天貓商城

 

1 Nginx的安裝

兩種方式:

1.yum二進制安裝

2.源碼編譯 ---- > LNMP 都是編譯

默認站點目錄:

     apache -  DocumentRoot    htdocs

          Nginx -- root參數指明  html目錄

默認網頁:

   apache配置文件中---- Directory -- index.html

         nginx                index   index.html 

1、Nginx的基本配置

關於Nginx模塊 (解耦) module --- 插件(都是配置文檔中的內容)

Nginx使用不一樣的模塊來實現不一樣的功能,主要有2組模塊:

1)Nginx core module (必須的)

包括: Mian模塊  Events模塊

2)standard HTTP module (不是必須的 可是缺省的安裝的 不建議改動)

經典包括:

Core

Access

FastCGI

Gzip (壓縮模塊,性能優化)

Log 日誌模塊(訪問  錯誤  警告日誌)

Proxy   Nginx 的反向代理

Upstream  Nginx負載均衡

提示:  模塊能夠經過官網查詢http://nginx.org/en/docs/

2、Nginx目錄結構(重點目錄 + 文件的介紹)

3、Nginx主配置文件介紹

Nginx的配置文件是一個純文本文件,整個配置文件是以塊的形式組織的。每一個模塊

通常用{}進行表示

位於最高層 Main --->Events --->http

[root@thinkmo ~]# egrep -v "#|^$" /usr/local/nginx/conf/nginx.conf

worker_processes  1;        //worker模式(經過一個進程 使用多個線程去處理請求) prefork模式(所有使用進程)   work進程數,寫cpu的核數    

events { 

    worker_connections  1024;     //work最大鏈接數

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    server {

        listen       80;   監聽的端口

        server_name  localhost;   域名

        location / {              默認站點

            root   html;

            index  index.html index.htm;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

 

虛擬主機====> 一臺機器  運行多個web服務

基於域名

基於IP

基於端口

Apache ---->哪一個標籤 定義虛擬主機? <VirtualHost>

Nginx ---server {}

1.安全  互聯網病毒--->掃面端口漏洞

2.成本  IP地址固定IP  每一年年費

4、配置虛擬主機(基於域名)

egrep -v "#|^$" nginx.conf > log.lol

[root@salt01 conf]# cp log.lol nginx.conf
cp:是否覆蓋"nginx.conf"? y

worker_processes 3;

events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.thinkmo.cn;
charset utf-8;
root html/www; #默認站點 /appliation/nginx/html/wwww
index index.html #默認網頁/appliation/nginx/html/wwww/index.html
}
server {
listen 80;
server_name blog.thinkmo.cn;
charset utf-8;
root html/; #默認站點 /appliation/nginx/html/wwww
index index.html #默認網頁/appliation/nginx/html/wwww/index.html
          }
server {
listen 80;
server_name bbs.thinkmo.cn;
charset utf-8;
root html/bbs; #默認站點 /appliation/nginx/html/wwww
index index.html #默認網頁/appliation/nginx/html/wwww/index.html

     } 

}

一臺服務器 一個iP  三個域名 

192.168.1.200  --  www.thinkmo.cn  blog.thinkmo.cn   bbs.thinkmo.cn

修改windowshosts文件

配置站點

域名解析 ---DNS正向解析

 1.去哪找? 本機hosts文件

 2.若是hosts沒有  --- >代理服務器

 3.若是代理服務器沒有 ---> 全球13DNS根服務器 ----> www.baidu.com

 4.返回給代理服務器

總結Nginx配置虛擬主機的流程:

1 複製一段完整的server{}標籤  注意: 要放在http的結束的大括號裏面

2)更改server_name  對應的網頁的root根目錄

3)檢查文件語法 平滑啓動

[root@thinkmo ~]# /usr/local/nginx/sbin/nginx  -t

nginx: the configuration file /usr/local/nginx-1.12.2/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx-1.12.2/conf/nginx.conf test is successfu

[root@thinkmo ~]# /usr/local/nginx/sbin/nginx  -s reload

4)建立server_name 對應的網頁的根目錄 而且創建測試文件

5)對客戶端server_name 的主機作host解析 或者DNS設置

6)瀏覽器訪問  

連接不上:拍錯步驟

1)測試連通性  ping (基於icmp協議 -- 一去(echo-request)一回(echo-reply))

Tracert 追蹤路徑

2)測試端口 telnet

3wget或者curl  是否響應

防火牆  權限  

5、測試nginx的連接數 

在配置文件的http中添加一段,並在hosts文件中添加解析

6、跳轉301重定向

 

兩種實現方式:

1)別名

在配置文件server字段的servername後面添加一個域名

當咱們訪問thinkmo.cn的時候就會自動訪問www.thinkmo.cn

Apache指定別名 用什麼標籤?

ServerAlias標籤

2)跳轉

server {

        listen       80;

        server_name  www.thinkmo.cn thinkmo.cn;

        root html/www;

        index index.html;

        rewrite ^/(.*) http://www.thinkmo.cn/$1 permanent;

        }

 

7、

經過IP --->沒有變化應---->遭受IP惡意綁定

你有域名  對方有IP沒有域名   用你的域名 IP

server {   第一個server標籤

        listen       80;

        location / {

        deny all;

}

}

8、基於端口的虛擬主機

修改配置文件的server字段中的listen端口號,能夠實現端口訪問  如:服務器IP:端口號

 

 當域名與端口號都存在且並不匹配時,將按照端口號爲準

9、基於IP的虛擬主機

 與前者相似都是修改配置文件的server字段中的listen字段,能夠在端口號前面加上虛擬IP,這樣訪問的對面servername頁面。

 

10、Nginx日誌 使用第三種

Apache上的日誌輪詢幾種形式? 3種

1.cronolog

2.ratatelog

3.cron + mv + graceful

相關文章
相關標籤/搜索