站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

Nginx的安裝部署以及使用

【介紹】

nginx是現(xiàn)在互聯(lián)上非常流行的高性能的 Web 和 反向代理 服務(wù)器,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。

現(xiàn)在很多互聯(lián)網(wǎng)應(yīng)用都使用nginx來作為負(fù)載均衡的使用,再高并發(fā)的情況下,使用Nginx來代替Apache是一種很不錯的選擇。

【安裝】

·安裝編譯工具以及庫文件·

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

·安裝PCRE·

PCRE的作用是為了Nginx支持Rewrite功能。

1. 下載PCRE安裝包

cd /usr/local/src/
wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz

2. 解壓

tar zxvf pcre-8.35.tar.gz

3. 進(jìn)入安裝包目錄,編譯安裝

cd pcre-8.35
./configure
make && make install

4. 查看版本

pcre-config –version

·安裝nginx·

1. 下載安裝包

cd /usr/local/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz

2. 解壓

tar zxvf nginx-1.6.2.tar.gz

3. 進(jìn)入安裝包目錄,編譯安裝

cd nginx-1.6.2
./configure –prefix=/usr/local/webserver/nginx –with-http_stub_status_module –with-http_ssl_module –with-pcre=/usr/local/src/pcre-8.35

make && make install

4. 查看nginx版本

/usr/local/webserver/nginx/sbin/nginx -v

5. 將nginx命令設(shè)置為全局

cp /usr/local/webserver/nginx/sbin/nginx /usr/bin

【配置】

vim /usr/local/webserver/nginx/conf/nginx.conf

worker_processes 2;  #設(shè)置值和CPU核心數(shù)一致

server {

 listen 80; #監(jiān)聽端口

}

【啟動】

修改完成配置之后,使用以下命令檢查一下配置:

nginx -c /usr/local/webserver/nginx/conf/nginx.conf

nginx  -t

使用以下命令加載配置文件并重啟:

nginx -s reload

查看一下防火墻是否關(guān)閉,如果未關(guān)閉需要關(guān)閉,否則從瀏覽器訪問80端口可能受阻。

systemctl status firewalld
systemctl stop firewalld

在瀏覽器頁面上輸入IP加端口,可以顯示出以下頁面即為安裝成功(可能需要等待幾分鐘)  

【配置優(yōu)化】

以上的配置只是最最基本的配置,只能讓nginx簡單得跑起來,我們依然需要以下配置使nginx實現(xiàn)反向代理或者負(fù)載均衡。

設(shè)置用戶

#user nobody;

工作進(jìn)程數(shù),一般設(shè)置為cpu核心數(shù)

worker_processes 1;

pid文件(保證進(jìn)程只有一個)

pid /run/nginx.pid;

events {

最大連接數(shù),一般設(shè)置為cpu*2048

 worker_connections 1024;

}

http {

開啟gzip壓縮(提高傳輸速率)(需要客戶端瀏覽器和nginx服務(wù)器同時支持)

gzip on;

壓縮最小文件大小

gzip_min_lenth 1k;

壓縮申請內(nèi)存(4個16k的數(shù)據(jù)流)

gzip_buffers 4 16k;

http協(xié)議版本號(不對應(yīng)的話是不支持壓縮的)

gzip_http_version 1.1;

如果客戶端瀏覽器不支持,則不進(jìn)行壓縮

   gzip_vary on;

日志格式

log_format main

客戶端IP 客戶端用戶名 請求URL

‘$remote_addr – $remote_user [$time_local] “$request” ‘

請求狀態(tài) 返回給客戶端的字節(jié)數(shù) 源網(wǎng)頁(百度->百度貼吧)

‘$status $body_bytes_sent “$http_referer” ‘

客戶端瀏覽器信息 客戶端IP地址(和$remote_addr差不多)

‘”$http_user_agent” “$http_x_forwarded_for”‘;

日志路徑 off代表不存儲日志,后面跟著日志的位置,main代表使用的日志格式

access_log off

access_log logs/access.log main;

客戶端鏈接超時時間(有長連接的時候,這個字段需要設(shè)置大一點)

keepalive_timeout 65;

當(dāng)配置多個server節(jié)點時,默認(rèn)server names的緩存區(qū)大小就不夠了,需要手動設(shè)置大一點

server_names_hash_bucket_size 512;

server表示虛擬主機(jī)可以理解為一個站點,可以配置多個server節(jié)點搭建多個站點

每一個請求進(jìn)來由server_name確定使用哪個server

server {

站點監(jiān)聽端口

listen        8800;

站點訪問域名,可以通過此字段判斷使用哪個server

server_name localhost;

編碼格式,避免url參數(shù)亂碼

charset utf-8;

location用來匹配同一域名下多個URI的訪問規(guī)則比如動態(tài)資源如何跳轉(zhuǎn),靜態(tài)資源如何跳轉(zhuǎn)等location后面跟著的/代表匹配規(guī)則

location / {

站點根目錄,可以是相對路徑,也可以是絕對路徑

root html;

默認(rèn)主頁

index index.html;

轉(zhuǎn)發(fā)后端站點地址,一般用于做軟負(fù)載,輪詢后端服務(wù)器

proxy_pass http://10.11.12.237:8080;

拒絕請求,返回403,一般用于某些目錄禁止訪問

#deny all;

允許請求

#allow all;

給請求頭中添加客戶請求主機(jī)名

proxy_set_header Host $host;

給請求頭中添加客戶端IP

proxy_set_header X-Real-IP $remote_addr;

將$remote_addr變量值添加在客戶端”X-Forwarded-For”請求頭的后面,并以逗號分隔。 

如果客戶端請求未攜帶”X-Forwarded-For”請求頭,$proxy_add_x_forwarded_for變量值將與$remote_addr變量相同

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

給請求頭中添加客戶端的Cookie

proxy_set_header Cookie $http_cookie;

修改從被代理服務(wù)器傳來的應(yīng)答頭中的”Location”和”Refresh”字段。

proxy_redirect [ default | off | redirect replacement ]

如果使用”default”參數(shù),將根據(jù)location和proxy_pass參數(shù)的設(shè)置來決定。

location /one/ {

  proxy_pass http://upstream:port/two/;

  proxy_redirect default;

}

location /one/ {

  proxy_pass http://upstream:port/two/;

  proxy_redirect http://upstream:port/two/ /one/;

}

參數(shù)off將在這個字段中禁止所有的proxy_redirect指令

proxy_redirect off;

被代理服務(wù)器返回Location字段為: http://localhost:8000/two/some/uri/

將Location字段重寫為 http://frontend/one/some/uri/。

proxy_redirect http://localhost:8000/two/ http://frontend/one/;

使用服務(wù)器的基本名稱和端口,即使它來自非80端口

proxy_redirect http://localhost:8000/two/ /;

瀏覽器對 Cookie 有很多限制,如果 Cookie 的 Domain 部分與當(dāng)前頁面的 Domain 不匹配就無法寫入。

所以如果請求 A 域名,服務(wù)器 proxy_pass 到 B 域名,然后 B 服務(wù)器輸出 Domian=B 的 Cookie,

前端的頁面依然停留在 A 域名上,于是瀏覽器就無法將 Cookie 寫入。

不僅是域名,瀏覽器對 Path 也有限制。

我們經(jīng)常會 proxy_pass 到目標(biāo)服務(wù)器的某個 Path 下,不把這個 Path 暴露給瀏覽器。

這時候如果目標(biāo)服務(wù)器的 Cookie 寫死了 Path 也會出現(xiàn) Cookie 無法寫入的問題。

設(shè)置”Set-Cookie”響應(yīng)頭中的domain屬性的替換文本,其值可以為一個字符串、正則表達(dá)式的模式或一個引用的變量

轉(zhuǎn)發(fā)后端服務(wù)器如果需要Cookie則需要將cookie domain也進(jìn)行轉(zhuǎn)換,否則前端域名與后端域名不一致cookie就會無法存取

配置規(guī)則。

proxy_cookie_domain serverDomain(后端服務(wù)器域) nginxDomain(nginx服務(wù)器域)

proxy_cookie_domain localhost .testcaigou800.com;

取消當(dāng)前配置級別的所有proxy_cookie_domain指令

proxy_cookie_domain off;

與后端服務(wù)器建立連接的超時時間。一般不可能大于75秒;(只是一般情況,有些長處理可能超時時間較長)

proxy_connect_timeout 30;

}

后端服務(wù)器返回404時顯示的頁面

error_page 404 /404.html;

后端服務(wù)器返回500等錯誤的時候顯示的頁面

error_page  500 502 503 504 /50x.html;

  location = /50x.html {

  root html;

}

}

  當(dāng)需要對同一端口監(jiān)聽多個域名時,使用如下配置,端口相同域名不同,server_name也可以使用正則進(jìn)行配置

  但要注意server過多需要手動擴(kuò)大server_names_hash_bucket_size緩存區(qū)大小

  server {

    listen 80;

    server_name bbb.abc.com;

    charset utf-8;

    location / {

      proxy_pass http://localhost:10001;

    }

  }

  server {

    listen 80;

    server_name aaa.abc.com;

    charset utf-8;

    location / {

      proxy_pass http://localhost:20002;

    }

  }

}

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
乱人伦精品视频在线观看| 国产精品欧美成人| 国产午夜无码精品免费看动漫| 日韩亚洲精品福利| 日韩精品人妻一区二区中文八零| 国产精品久久久久久亚洲影视 | 国产夫妇精品自在线| 久久夜色精品国产嚕嚕亚洲av| 欧亚精品卡一卡二卡三| 精品成人一区二区三区四区| 午夜精品久久影院蜜桃| 亚洲AV日韩AV一区二区三曲 | 国产精品狼人久久久久影院 | 99re6这里只有精品| 亚洲国产精品无码成人片久久| 99久久国产精品免费一区二区| 9久9久热精品视频在线观看| 亚洲精品无码专区2| 九九热这里都是精品| 日韩成人一区ftp在线播放| 日韩av无码中文无码电影| 日韩在线观看视频黄| 一本大道无码日韩精品影视| 国产精品久久精品福利网站| 欧洲精品一区二区三区| 国内精品福利视频| 精品国产天堂综合一区在线| 图片区精品综合自拍| 国产精品视频一区| 成人h动漫精品一区二区无码| 大伊香蕉在线精品视频人碰人| 国产美女在线精品免费观看| 国产精品成人国产乱| 图片区精品综合自拍| 国产精品熟女视频一区二区| 国产麻豆剧果冻传媒免精品费网站 | 97视频精品全国在线观看| 99久久久国产精品免费牛牛| 91精品手机国产免费| 国产精品九九九久久九九| 国产精品玖玖玖在线观看|