一、Nginx簡(jiǎn)介
1.什么是Nginx
Nginx(engine x)是一個(gè)高性能的HTTP和反向代理服務(wù),Nignx為伊戈?duì)?賽索耶夫?yàn)?strong>俄羅斯訪問量第二的Rambler.ru 站點(diǎn)開發(fā)的篓像。第一個(gè)公開版本 0.1.0發(fā)布于 2004 年 10 月 4 日。
Nginx是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),它具有很多非常優(yōu)越的特性:在連接高并發(fā)的情況下,Nginx是Apache服務(wù)不錯(cuò)的代替品:Nginx在美國是做虛擬主機(jī)生意的老板們經(jīng)常選擇的軟件平臺(tái)之一陆赋。
2.Nginx作用
- 1.HTTP協(xié)議代理
- 2.搭建虛擬主機(jī)(可以在一個(gè)硬件平臺(tái)上,通過不同的目錄為用戶提供租用的空間嚷闭,如:阿里云)
- 3.服務(wù)的反向代理
- 4.在反向代理中配置集群的負(fù)載均衡
二攒岛、代理方式
1.正向代理
正向代理,意思是一個(gè)位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器胞锰,為了從原始服務(wù)器取得內(nèi)容灾锯,客戶端向代理發(fā)送一個(gè)請(qǐng)求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請(qǐng)求并將獲得的內(nèi)容返回給客戶端嗅榕∷骋客戶端才能使用正向代理。
作用:
- 訪問原來無法訪問的資源凌那,例如:翻墻
- 可以做緩存领突,加速資源的訪問
- 對(duì)客戶端上網(wǎng)進(jìn)行認(rèn)證授權(quán),例如:校園網(wǎng)
- 上網(wǎng)行為管理案怯,記錄用戶訪問記錄,對(duì)外隱藏了用戶信息
2.反向代理
客戶端發(fā)送請(qǐng)求到服務(wù)器(客戶端認(rèn)為是原始服務(wù)器澎办,實(shí)際請(qǐng)求是被反向代理接收)嘲碱,反向代理服務(wù)器將接收的請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部的服務(wù)器集群,并將相應(yīng)返回給客戶端局蚀。
反向代理一般用于服務(wù)器集群麦锯、分布式等,實(shí)現(xiàn)負(fù)載均衡琅绅。
作用:
- 負(fù)載均衡扶欣,提高處理速度和響應(yīng)速度
- 保證內(nèi)網(wǎng)的安全,隱藏了服務(wù)器的信息
3.二者之間的區(qū)別
- 位置不同
正向代理:架設(shè)在客戶機(jī)和目標(biāo)主機(jī)之間
反向代理:架設(shè)在服務(wù)器端 -
代理對(duì)象不同
正向代理:代理客戶端,服務(wù)器不知道發(fā)起請(qǐng)求的客戶端
反向代理:代理服務(wù)器料祠,客戶端不知道提供服務(wù)的服務(wù)器
image.png
4.配置
使用Nginx作為其他服務(wù)器
步驟:
- 1.創(chuàng)建虛擬主機(jī)配置文件骆捧,并配置反向代理
三、安裝Nginx
1.將Nginx安裝包上傳到Linux中
2.nginx安裝環(huán)境
nginx是C語言開發(fā)的髓绽,建議在linux上運(yùn)行
- gcc
安裝nginx需要先將官網(wǎng)下載的源碼進(jìn)行編譯敛苇,編譯依賴gcc環(huán)境,如果沒有g(shù)cc環(huán)境顺呕,需要安裝gcc:
yum install gcc-c++
- PCRE
PCRE(Perl Compatible Regular Expressions)是一個(gè)Perl庫枫攀,包括perl兼容的正則表達(dá)式庫。nignx的http模塊使用pcre來解析正則表達(dá)式株茶,所以需要在linux上安裝pcre庫来涨。
yum install -y pcre pcre-devel
注意:pcre-devel是使用pcre開發(fā)的一個(gè)二次開發(fā)庫。nginx也需要此庫启盛。
- zlib
zlib庫提供了很多種壓縮和解壓縮的方式蹦掐,nginx使用zlib對(duì)http包的內(nèi)容進(jìn)行g(shù)zip,所以需要在linux安裝openssl庫驰徊。
yum install -y zlib zlib-devel
- openssl
OpenSSL是一個(gè)強(qiáng)大的安全套接層密碼庫笤闯,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協(xié)議棍厂,并提供豐富的應(yīng)用程序供測(cè)試或其他目的的使用颗味。
nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http)牺弹,所以需要在linux上安裝openssl庫浦马。
yum install -y openssl opensll-devel
3.編譯安裝
解壓
tar -zxvf nginx-1.8.0.tar.gz
進(jìn)入到nginx的根目錄
cd nginx-1.8.0
3.1 配置安裝參數(shù)
./configure
參數(shù)設(shè)置如下:
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
注意:上面將臨時(shí)文件目錄指定為/var/temp/nginx,需要在/var下創(chuàng)建temp及nginx目錄
3.2 編譯安裝
編譯(在根目錄)
make
編譯安裝(在根目錄)
make install
四张漂、卸載Nginx
- 1.輸入以下指令全局查找nginx相關(guān)的文件:
sudo find / -name nginx*
- 2.刪除查找出來的所有nginx相關(guān)文件
sudo rm -rf file 此處跟查找出來的nginx文件
注意:全局查找往往會(huì)查出很多相關(guān)文件晶默,但是前綴基本都是相同,后面不同的部分可以用*
代替航攒,以便快速刪除~
例如:
sudo rm -rf file /usr/local/nginx*
五磺陡、操作Nginx
1.啟動(dòng)nginx
cd /usr/local/nginx/sbin/
./nginx
注意:執(zhí)行./nginx
啟動(dòng)nginx,這里可以-c
指定加載nginx的配置文件漠畜,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c币他,nginx在啟動(dòng)時(shí)默認(rèn)加載conf/nginx.conf文件,此文件的地址也可以在編譯安裝nginx時(shí)指定./configure
的參數(shù)(--conf-path=指向配置文件(nginx.conf))
查看nginx是否啟動(dòng)成功
ps aux|grep nginx
2.停止nginx
方式一:快速停止
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相當(dāng)于先查出nginx進(jìn)程id再使用kill命令強(qiáng)制殺掉進(jìn)程憔狞。
方式二:完整停止(建議使用)
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步驟是待nginx進(jìn)程處理任務(wù)完畢進(jìn)行停止
3.重啟nginx
方式一:先停止再啟動(dòng)(建議使用)
對(duì)nginx進(jìn)行重啟相當(dāng)于先停止nginx再啟動(dòng)nginx蝴悉,即先執(zhí)行停止命令,再執(zhí)行啟動(dòng)命令瘾敢。
如下:
./nginx -s quit
./nginx
方式二:重新加載配置文件
當(dāng)nginx的配置文件nginx.conf修改后拍冠,要想讓配置生效需要重啟nginx尿这,使用-s reload不用先停止nginx再啟動(dòng)nginx即可將配置信息再ngin中生效,如下:
./nginx -s reload
4.測(cè)試
nginx安裝成功庆杜,啟動(dòng)nginx射众,即可訪問虛擬機(jī)上的nginx
nginx默認(rèn)監(jiān)聽80端口
六、Nginx的使用
1.配置虛擬主機(jī)
1.1 虛擬主機(jī)介紹
虛擬主機(jī)是一種特殊的軟硬件技術(shù)欣福,它可以將網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī)分成多個(gè)虛擬主機(jī)责球,每個(gè)虛擬主機(jī)可以獨(dú)立對(duì)外提供 www 服務(wù),這樣就可以實(shí)現(xiàn)一臺(tái)主機(jī)對(duì)外提供多個(gè)web 服務(wù)拓劝,每個(gè)虛擬主機(jī)之間是獨(dú)立的雏逾,互不影響的。
1.2 Nginx的虛擬主機(jī)配置方式
Nginx 支持三種類型的虛擬主機(jī)配置
- 基于IP的虛擬主機(jī)
- 基于端口的虛擬主機(jī)
- 基于域名的虛擬主機(jī)
1.2.1基于 IP 的虛擬主機(jī)配置方式
需求:
一臺(tái) Linux 服務(wù)器綁定兩個(gè) ip:192.168.254.128郑临、192.168.254.133訪問不同的 ip 請(qǐng)求不同的 html 目錄栖博,即:
訪問 http://192.168.254.128 將訪問“html128”目錄下的 html 網(wǎng)頁
訪問 http://192.168.254.133 將訪問“html133”目錄下的 html 網(wǎng)頁
創(chuàng)建html目錄
Linux綁定多IP
Linux 操作系統(tǒng)允許綁定多 IP。使用 IP 別名的方式厢洞,這樣就能夠在使用單一網(wǎng)卡的同一個(gè)服務(wù)器上運(yùn)行多個(gè)基于 IP 的虛擬主機(jī)仇让。但是在綁定多 IP 時(shí)需要將動(dòng)態(tài)的 IP 分配方式修改為靜態(tài)的指定 IP。
將動(dòng)態(tài) IP 修改為靜態(tài) IP
cd /etc/sysconfig/network-scripts
IPADDR=192.168.254.128
NETMASK=255.255.255.0
GATEWAY=192.168.10.2
DNS1=114.114.114.114
IP 綁定
將/etc/sysconfig/network-scripts/ifcfg-eth0
文件復(fù)制一份躺翻,命名為
ifcfg-eth0:1
修改其中內(nèi)容:
DEVICE=eth0:1
IPADDR=192.168.254.133
其他項(xiàng)不用修改
重啟系統(tǒng)
-
修改 Nginx 的配置文件完成基于 IP 的虛擬主機(jī)配置
Nginx 的配置文件 nginx.conf
如上述配置文件所示丧叽,主要由 6 個(gè)部分組成:
main:用于進(jìn)行 nginx 全局信息的配置
events:用于 nginx 工作模式的配置
http:用于進(jìn)行 http 協(xié)議信息的一些配置
server:用于進(jìn)行服務(wù)器訪問信息的配置
location:用于進(jìn)行訪問路由的配置
upstream:用于進(jìn)行負(fù)載均衡的配置
Nginx.conf
user root;
worker_processes 1;
#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 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name 192.168.254.128;
#配置路由訪問信息
location / {
#訪問根目錄時(shí),訪問虛擬主機(jī)的web目錄
root html128;
#在不指定訪問具體資源時(shí)公你,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name 192.168.254.133;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)踊淳,訪問虛擬主機(jī)的web目錄
root html133;
#在不指定訪問具體資源時(shí),默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
-
基于端口的虛擬主機(jī)配置方式
需求
Nginx 對(duì)提供 8080 與 9090 兩個(gè)端口的監(jiān)聽服務(wù)
請(qǐng)求 8080 端口則訪問 html8080 目錄下的 index.html
請(qǐng)求 9090 端口則訪問 html9090 目錄下的 index.html
創(chuàng)建 HTML 目錄
修改 Nginx 的配置文件完成基于端口的虛擬主機(jī)配置
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 8080;
#為虛擬機(jī)指定IP或者域名
server_name 192.168.254.128;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)陕靠,訪問虛擬主機(jī)的web目錄
root html8080;
#在不指定訪問具體資源時(shí)迂尝,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 9090;
#為虛擬機(jī)指定IP或者域名
server_name 192.168.254.128;
#配置路由訪問信息
location / {
#訪問根目錄時(shí),訪問虛擬主機(jī)的web目錄
root html9090;
#在不指定訪問具體資源時(shí)剪芥,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
-
基于域名的虛擬主機(jī)配置方式
需求
兩個(gè)域名指向同一個(gè) nginx 服務(wù)器垄开,用戶訪問不同的域名時(shí)顯示不同的內(nèi)容。
域名規(guī)劃:
- www.baidu.com
- tieba.baidu.com
創(chuàng)建 HTML 目錄
修改 windows 的 hosts 文件配置域名與 ip 的映射
文件路徑:C:\Windows\System32\drivers\etc
修改 Nginx 的配置文件完成基于域名的虛擬主機(jī)配置
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name test.baidu.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)税肪,訪問虛擬主機(jī)的web目錄
root html-baidu;
#在不指定訪問具體資源時(shí)溉躲,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name test.tieba.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí),訪問虛擬主機(jī)的web目錄
root html-tieba;
#在不指定訪問具體資源時(shí)益兄,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
2.Nginx 中配置服務(wù)的反向代理
2.1 需求:
安裝兩個(gè) tomcat 服務(wù)签财,通過 nginx 反向代理。
本案例中使用兩臺(tái)虛擬機(jī)演示偏塞。
tomcat 安裝到 192.168.254.133 環(huán)境中。端口為 8080 與 9090
Nginx 安裝在 192.168.254.128 環(huán)境中
2.2 安裝tomcat
2.3 修改tomcat端口
2.4 修改首頁內(nèi)容
/usr/local/n-tomcat2/webapps/ROOT
2.5 配置 Nginx 實(shí)現(xiàn)服務(wù)的反向代理
nginx.conf
user root;
worker_processes 1;
#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 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat_server1{
server 192.168.254.133:8080;
}
upstream tomcat_server2{
server 192.168.254.133:9090;
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name test.baidu.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)邦鲫,訪問虛擬主機(jī)的web目錄
proxy_pass http://tomcat_server1;
#在不指定訪問具體資源時(shí)灸叼,默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name test.tieba.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)神汹,訪問虛擬主機(jī)的web目錄
proxy_pass http://tomcat_server2;
#在不指定訪問具體資源時(shí),默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
2.6 在反向代理中配置負(fù)載均衡
什么是負(fù)載均衡
負(fù)載均衡古今,英文名稱為 Load Balance屁魏,其意思就是分?jǐn)偟蕉鄠€(gè)操作單元上進(jìn)行執(zhí)行。
負(fù)載均衡建立在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上捉腥,它提供了一種廉價(jià)氓拼、有效、透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬抵碟、增加吞吐量桃漾、加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性拟逮。
負(fù)載均衡策略
- 輪詢(默認(rèn))
每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器撬统,如果后端服務(wù)器down掉,能自動(dòng)剔除敦迄。 - 指令權(quán)重
指令輪詢機(jī)制恋追,weight和訪問率成正比,用于后端服務(wù)器性能不均的情況罚屋。 - IP綁定(ip_hash)
每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配苦囱,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session共享的問題脾猛。
需求:
nginx 作為負(fù)載均衡服務(wù)器撕彤,用戶請(qǐng)求先到達(dá) nginx,再由 nginx 根據(jù)負(fù)載配置將請(qǐng)求轉(zhuǎn)發(fā)至 tomcat 服務(wù)器尖滚。
nginx 負(fù)載均衡服務(wù)器:192.168.254.128
tomcat1 服務(wù)器:192.168.254.133:8080
tomcat2 服務(wù)器:192.168.254.133:9090
nginx.conf
user root;
worker_processes 1;
#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 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
upstream tomcat_server1{
server 192.168.254.133:8080 weight=10;
server 192.168.254.133:9090 weight=2;
}
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name test.baidu.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)喉刘,訪問虛擬主機(jī)的web目錄
proxy_pass http://tomcat_server1;
#在不指定訪問具體資源時(shí),默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
upstream 每個(gè)設(shè)備的狀態(tài):
- down 表示單前的 server 暫時(shí)不參與負(fù)載
- weight 默認(rèn)為 1.weight 越大漆弄,負(fù)載的權(quán)重就越大
- fail_timeout:次失敗后睦裳,暫停的時(shí)間 默認(rèn) 10s
- max_fails :允許請(qǐng)求失敗的次數(shù)默認(rèn)為 1.當(dāng)超過最大次數(shù)時(shí),返回
- backup: 其它所有的非 backup 機(jī)器 down 或者忙的時(shí)候撼唾,請(qǐng)求 backup 機(jī)器廉邑。所以這臺(tái)機(jī)器壓力會(huì)最輕。
3.http 協(xié)議代理
由于 ftp 服務(wù)器是基于 ftp 協(xié)議處理的倒谷。那么現(xiàn)在我想在外部訪問該圖片蛛蒙,是沒有辦法訪問的。他是不能處理 http 協(xié)議的渤愁。所以我們需要擁有一個(gè)能夠處理 http 協(xié)議代理服務(wù)器牵祟。其實(shí)就是使用了 Nginx 的虛擬主機(jī)的方式。
需求:
使用 Nginx 的基于域名的虛擬主機(jī)的方式來完成在 KindEditor 中添加圖片時(shí)的圖片回顯處理抖格。
nginx:192.168.254.128
VSFTPD:192.168.254.128
注意:nginx 與 VSFTPD 必須安裝到同一個(gè)環(huán)境中诺苹。
解決 KindEditorDemo 項(xiàng)目中圖片回顯的問題
-
修改系統(tǒng)的 hosts 文件
-
修改項(xiàng)目的 resource.properties 文件
FTP_HOST=192.168.254.128
FTP_PORT=21
FTP_USERNAME=ftpuser
FTP_PASSWORD=ftpuser
FTP_BASEPATH=/home/ftpuser/
HTTP_BASEPATH=http://img.baidu.com/
-
修改nginx.conf
user root;
worker_processes 1;
#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 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#一個(gè)server就是一個(gè)虛擬主機(jī)
server {
#監(jiān)聽的端口
listen 80;
#為虛擬機(jī)指定IP或者域名
server_name img.baidu.com;
#配置路由訪問信息
location / {
#訪問根目錄時(shí)咕晋,訪問虛擬主機(jī)的web目錄
root /home/ftpuser/;
#在不指定訪問具體資源時(shí),默認(rèn)展示的資源
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}