Nginx 基礎(一)

一 、Nginx簡述

Nginx是一個開源、高性能、可靠的HTTP中間件、代理服務。


二 、常見的HTTP服務

1. HTTPD-Apache基金會

2. IIS-微軟

3. GWS-Google

4. Nginx


三、為什么選擇Nginx

原因一:IO多路復用epoll (主要解決了并發性的問題)

注1:多個描述符的I/O操作都能在一個線程內并發交替的順序完成,這就叫做I/O多路復用,這里的“復用”指的是復用同一個線程。

注2:IO多路復用的實現方式有 select 、poll、epoll (逐漸進化)

原因二:輕量級

1、功能模塊少(只保留了HTTP和其相關核心功能的模塊)

2、代碼模塊化??

原因三:? CPU親和(affinity)

注:cpu親和是一種把cpu核心和Nginx工作進程綁定的方式,把每個worker進程固定在一個cpu上執行,減少切換cpu的cache,miss,獲得更好的性能。

原因四:sendfile工作機制


四、Nginx 快速安裝

注:Nginx官方下載頁面:http://nginx.org/en/download.html


1. 編輯nginx yum源

vim /etc/yum.repos.d/nginx.repo


2. 將下面內容復制到這個文件上,然后保存。

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1


3. 執行yum安裝??

yum -y install nginx

reboot? #重啟系統


4. 確認nginx安裝完成

nginx -v



注:

安裝后nginx文件夾映射在本地windows上的目錄如下

將Linux上文件映射到本地windows上教程:?https://blog.csdn.net/m_nanle_xiaobudiu/article/details/80631437



五 Nginx 目錄和配置語法

1. nginx安裝目錄

命令:rpm -ql nginx

2. Nginx 的配置語法(nginx.conf)

原始nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}http {
    include       /etc/nginx/mime.types;
    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  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

參數解釋:

user:設置nginx服務的系統使用用戶(默認為nginx,非root)【更安全】

worker_processes: 工作進程數【最好與cpu核心數保持一致】

error_log:nginx的錯誤日志定義

pid:nginx服務啟動時的pid【存放nginx pid的位置】

events部分:

worker_connections? 每個進程允許最大連接數【一般調節到一萬左右】

http部分:

logformat:定義日志類型

keeplive_timeout:設置客戶端和服務端連接超時的時間

access_log:? 訪問日志

include /etc/nginx/conf.d/*.conf: 子配置文件( 大網站多站點可以在這里進行分開配置 )

3. 子配置文件格式

默認只有一個default.conf,當網站存在多個域名地址時,可以在子配置文件進行分開配置,比如這樣



這樣,nginx首先讀取nginx.conf 配置文件, 我們在nginx.conf配置文件中進行一些基礎公共部分的定義,然后在nginx.conf最末尾又include了conf.d文件夾向下的所有.conf文件

我們在conf.d文件夾下定義每一個站點域名的配置(比如包括網站根路徑,重寫規則,錯誤日志位置定義,訪問日志位置定義等等,總之所有關于SERVER的定義通通在子配置文件中進行定義,而不是在nginx.conf中定義),比如下面這樣

總結:?

1. 在nginx.conf中定義基礎公共部分配置

2. 在conf.d文件夾下分別定義每一個server的配置

3. 當然,習慣用phpstudy的同學也可以在nginx.conf文件末尾再include vhost.conf文件,也是可以的

server {
    listen       80;
    server_name  test.passport.kk.com;

    charset utf-8;
    access_log  logs/access/test.passport.kk.com.access.log main;
    error_log   logs/error/test.passport.kk.com.log debug;

    root   "G:/Faraway/data/passport/htdocs";
    index  index.html index.htm index.php;

    location /favicon.ico {
        log_not_found off;
        access_log off;
    }location / {
        if (!-e $request_filename) {
            rewrite ^/(.*)$ /index.php/$1 last;
        }}location ~ \.php(.*)$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  PATH_INFO  $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                include        fastcgi_params;
    }location /doc {
         if (!-f $request_filename){
          rewrite ^/doc/(.*)$  /doc/index.php/$1 last;
        }}location /api {
         if (!-f $request_filename){
          rewrite ^/api/(.*)$  /api/index.php/$1 last;
        }}error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }}

Nginx初級 好文推薦?https://blog.csdn.net/u012486840/article/details/53098890

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/282377.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282377.shtml
英文地址,請注明出處:http://en.pswp.cn/news/282377.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Ajax基本案例詳解之load的實現

Ajax的load實現: 看這篇之前建議大家去看看前面兩篇文章: 1.Ajax基本案例詳解之$.ajax的實現 2.Ajax基本案例詳解之$.get的實現 現在寫一下$.load()里面的主要內容: $("#semail").load("doindex.jsp","email1&q…

ASP.NET Core高性能服務器HTTP.SYS

如果我們只需要將ASP.NET CORE應用部署到Windows環境下,并且希望獲得更好的性能,那么我們選擇的服務器類型應該是HTTP.SYS。Windows環境下任何針對HTTP的網絡監聽器/服務器在性能上都無法與HTTP.SYS比肩。[本文節選《ASP.NET Core 6框架揭秘》第18章]一、…

神經網絡- receptive field

記錄一下感受野的理解: 在神經網絡中,感受野的定義是: 神經網絡的每一層輸出的特征圖(Feature ap)上的像素點在原圖像上映射的區域大小。 1. 神經網絡中,第一個卷積層的 感受野大小,就等于filt…

734. [網絡流24題] 方格取數問題 二分圖點權最大獨立集/最小割/最大流

問題描述:在一個有m*n 個方格的棋盤中,每個方格中有一個正整數。現要從方格中取數,使任意2 個數所在方格沒有公共邊,且取出的數的總和最大。試設計一個滿足要求的取數算法。編程任務:對于給定的方格棋盤,按…

Nginx 基礎 ( 二)

一、HTTP請求 http請求包括客戶端請求服務端 以及 服務端響應數據回客戶端,如下 請求:包括請求行、請求頭部、請求數據 響應:包括狀態行、消息報頭、響應正文 比如在Linux中curl請求網站獲取請求信息和響應信息 curl -v http://www.kugou.com…

《金融行業應用解決方案白皮書》發布,金融自主創新未來可期!

日前,以“聚勢賦能 行業共創”為主題的金融行業解決方案發布會在線上舉行。麒麟軟件發布《金融行業應用解決方案白皮書》,并發起成立“金融機具生態圈俱樂部”,助力金融行業用戶高質量發展。金融信息系統曾經被國外廠商壟斷金融信息系統作為國…

leetcode53 Maximum Subarray 最大連續子數組

題目要求 Find the contiguous subarray within an array (containing at least one number) which has the largest sum.For example, given the array [-2,1,-3,4,-1,2,1,-5,4], the contiguous subarray [4,-1,2,1] has the largest sum 6.即:尋找數列中的一個子…

黑馬程序員-WEB前端與移動開發就業班

Web前端 — IT互聯網的“門面”有人的地方就有江湖,有網站的地方就有Web前端,無所不用,互聯網大勢所在。課程循序漸進,技術小白課快速上手課程結構由淺入深,基礎課程講解充分,了解網頁的結構組成、分析頁面…

詳解go語言的array和slice 【二】

上一篇 詳解go語言的array和slice 【一】已經講解過,array和slice的一些基本用法,使用array和slice時需要注意的地方,特別是slice需要注意的地方比較多。上一篇的最后講解到創建新的slice時使用第三個索引來限制slice的容量,在操作新slice時…

詳解Objective-C的meta-class

2019獨角獸企業重金招聘Python工程師標準>>> 比較簡單的一篇英文,重點是講解meta-class。翻譯下,加深理解。 原文標題:What is a meta-class in Objective-C? 原文地址:http://www.cocoawithlove.com/2010/01/what-is…

Nginx 模塊的使用

Nginx模塊的使用,就是在Nginx配置文件中的http、server、location中添加參數,進行多一項或幾項處理一、 實現響應內容替換 1、sub_module二、Nginx的請求限制 1、連接頻率限制 limit_conn_module 2、請求頻率限制 limit_req_module 注: HTTP請求建立在一次…

Question | 網站被黑客掃描撞庫該怎么應對防范?

本文來自網易云社區在安全領域向來是先知道如何攻,其次才是防。針對題主的問題,在介紹如何防范網站被黑客掃描撞庫之前,先簡單介紹一下什么是撞庫。撞庫是黑客通過收集互聯網已泄露的用戶和密碼信息,生成對于的字典表,…

十倍程序員 | 使用 Source Generator 將 JSON 轉換成 C# 類

前言有時候,我們需要將通過 WebAPI 接收 JSON 字符串轉換成 C# 代碼。Visual Studio 提供了一個功能菜單可以輕松實現:執行完成后,它會將生成的代碼放在打開的的代碼窗口中。但是,如果有多個 JSON 字符串需要轉換,這個…

Delphi對話框初始地址InitialDir

我的電腦:SaveDialog1.InitialDir : ::{20D04FE0-3AEA-1069-A2D8-08002B30309D};// My Computer {20D04FE0-3AEA-1069-A2D8-08002B30309D}// Network Neighborhood {208D2C60-3AEA-1069-A2D7-08002B30309D}// Recycled {645FF040-5081-101B-9F08-00AA002F954E} 另外…

[python] 解決pip install download速度過慢問題 更換豆瓣源

""" python建立pip.ini.py 2016年4月30日 03:35:11 codegay """import osini"""[global] index-url https://pypi.doubanio.com/simple/ [install] trusted-hostpypi.doubanio.com """ pippathos.environ["…

Maven組件通過命令上傳本地和私有倉庫

安裝本地包到本地倉庫:mvn install:install-file -DgroupIdcom.xxx -DartifactIdmqtt-server-client -Dversion1.0.1 -Dpackagingjar -DfileE:\__vdt\MVVP\mqtt-server-client-1.0.1.jar -DpomFileE:\__vdt\MVVP\pom.xml安裝本地包到私有倉庫:mvn deploy…

Nginx -靜態資源Web服務

一、靜態資源類型 注:非服務器動態生成的文件 1、瀏覽器端渲染 HTML、css、js 2、圖片 jpeg、gif、png 3、視頻 flv、MPEG 4、文件 TXT、等任意下載文件二、靜態資源服務配置1、配置語法-文件讀取 syntax:sendfile on|off default:sendfi…

微軟Microsoft Azure 機器學習工作室的案例之Image Classification using DenseNet

點擊上方藍字關注我們(本文閱讀時間:10分鐘)Microsoft Azure Machine Learning Studio是微軟強大的機器學習平臺,在設計器中,微軟內置了15個場景案例,但網上似乎沒有對這15個案例深度刨析的分析資料,所以我…

java小基礎之instanceof運算符

instanceof主要用來判斷一個類是否實現了某個接口,或者判斷一個實例對象是否屬于一個類。 1. 判斷一個對象是否屬于一個類 boolean result p instanceof Student; 2. 對象類型強制轉換前的判斷 Person p new Student(); //判斷對象p是否為Student類的實例 if(p in…

音樂分類

代碼: 1 import numpy as np2 from scipy import fft3 from scipy.io import wavfile4 from sklearn.linear_model import LogisticRegression5 import random6 """7 使用logistic regression處理音樂數據,音樂數據訓練樣本的獲得是使…