nginx作為輕量級的http伺服器,能夠很好地應付高並發的http請求。同時,它也能被設定為http代理伺服器。身為後台開發的菜鳥,這樣優秀的開源伺服器擺在眼前,總要研究一番,學點東西才可靠啊!
當然,學習nginx的第一步就是學會如何使用它了。
1 安裝nginx
首先,從官網下載源碼http://nginx.org/download/nginx-1.8.0.tar.gz,解壓縮後進入nginx-1.8.0目錄。
nginx依賴pcre函式庫,所以還需要下載pcre原始碼 。
將pcre源碼解壓縮在nginx-1.8.0/3rdparty/pcre-8.32,然後在根目錄下執行
<code>./configure --with-http_ssl_module --with-pcre=./3rdparty/pcre-8.32/ ./make ./sudo make install </code>
即可完成安裝,預設安裝目錄在/usr/local/nginx。
安裝過程中可能會提示缺少openssl函式庫,可以直接apt-get install。
2 配置nginx
在使用nginx之前,先在/home/bookxiao/下創建一個nginx目錄用於存放資源文件,再創建到/usr/local/nginx下conf, sbin以及logs的軟連接,避免頻繁的切換目錄。
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx</span><span>$ </span>ls bin conf data logs</code>
nginx的設定檔位於conf/下,名為nginx.conf。組成設定檔的基本單元是一條的“指令(directives)”,指令由名稱、參數屬性以及結尾的’:’三部分組成。此外,有些指令會被{ }包圍起來,組成一個block;如果block內部包含一些指令,那麼這個block也叫作一個「上下文(context)」。
設定檔裡所有的指令要不是在某個上下文內,就是不被任何上下文包含(即位於主上下文),有點類似C中的全域變數。
例如, 一個簡單的設定檔如下所示:
<code>bookxiao<span>@ubuntuforfun</span><span>:~/nginx/conf</span><span>$ </span>cat nginx.conf <span>#user nobody;</span> worker_processes <span>1</span>; events { worker_connections <span>1024</span>; } http { server { listen <span>80</span>; server_name localhost; location / { root html; index index.html index.htm; } location /images { root /home/bookxiao/nginx/data; } } }</code>
event, http, server都是”context”;指令”worker_processes 1;”位於main context。
要想簡單測試nginx的功能,那麼先來看看如何設定server{}區塊。在nginx中,每個server區塊都表示一個HTTP服務,不同的server有不同的port和server_name。
假設我們現在有一張圖片,存放路徑為~/nginx/data/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg。
現在我們想在瀏覽器裡面輸入http://127.0.0.1/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg
,就會這樣:
仔細看一下上面的配置文件,看到有個location的block是這樣定義的:
<code> location /images { root /home/bookxiao/nginx/<span><span>data</span>;</span> }</code>
locations後跟的”/images」用來跟客戶端的URL請求作前綴匹配,如果匹配了,那麼就將root的值添加到URL的前端,組成新的URL去文件系統尋找資源檔案。
比如說,這裡原本的URL是”/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg”,那麼最終的URL是”/home/bookxiao/nginx/data/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.jpg」。
如果有多個location都符合某個URL怎麼辦? nginx的策略是選擇最長的匹配值的那個location。
所以,我們可以增加這樣一個server:
<code> server { listen <span>9999</span>; server_name localhost_test; location /images { root /home/bookxiao/nginx/<span><span>data</span>/test;</span> } }</code>
然後執行sudo nginx -s reload
重新載入設定檔。然後我們在data/下新建一個test/images/目錄。這樣,我們在瀏覽器中輸入http://127.0.0.1:9999/images/nginx學習筆記1 使用nginx建構簡單的HTTP伺服器.img
。那我們就會看到:
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了nginx學習筆記1 使用nginx建立簡單的HTTP伺服器,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本篇文章给大家带来了关于nginx的相关知识,其中主要介绍了nginx拦截爬虫相关的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

高并发系统有三把利器:缓存、降级和限流;限流的目的是通过对并发访问/请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务(定向到错误页)、排队等待(秒杀)、降级(返回兜底数据或默认数据);高并发系统常见的限流有:限制总并发数(数据库连接池)、限制瞬时并发数(如nginx的limit_conn模块,用来限制瞬时并发连接数)、限制时间窗口内的平均速率(nginx的limit_req模块,用来限制每秒的平均速率);另外还可以根据网络连接数、网络流量、cpu或内存负载等来限流。1.限流算法最简单粗暴的

nginx php403错误的解决办法:1、修改文件权限或开启selinux;2、修改php-fpm.conf,加入需要的文件扩展名;3、修改php.ini内容为“cgi.fix_pathinfo = 0”;4、重启php-fpm即可。

实验环境前端nginx:ip192.168.6.242,对后端的wordpress网站做反向代理实现复杂均衡后端nginx:ip192.168.6.36,192.168.6.205都部署wordpress,并使用相同的数据库1、在后端的两个wordpress上配置rsync+inotify,两服务器都开启rsync服务,并且通过inotify分别向对方同步数据下面配置192.168.6.205这台服务器vim/etc/rsyncd.confuid=nginxgid=nginxport=873ho

跨域是开发中经常会遇到的一个场景,也是面试中经常会讨论的一个问题。掌握常见的跨域解决方案及其背后的原理,不仅可以提高我们的开发效率,还能在面试中表现的更加

nginx部署react刷新404的解决办法:1、修改Nginx配置为“server {listen 80;server_name https://www.xxx.com;location / {root xxx;index index.html index.htm;...}”;2、刷新路由,按当前路径去nginx加载页面即可。

nginx禁止访问php的方法:1、配置nginx,禁止解析指定目录下的指定程序;2、将“location ~^/images/.*\.(php|php5|sh|pl|py)${deny all...}”语句放置在server标签内即可。

linux版本:64位centos6.4nginx版本:nginx1.8.0php版本:php5.5.28&php5.4.44注意假如php5.5是主版本已经安装在/usr/local/php目录下,那么再安装其他版本的php再指定不同安装目录即可。安装php#wgethttp://cn2.php.net/get/php-5.4.44.tar.gz/from/this/mirror#tarzxvfphp-5.4.44.tar.gz#cdphp-5.4.44#./configure--pr


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)