欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux服務(wù)器下nginx的安全配置詳解

 更新時間:2016年10月27日 09:45:37   作者:chenpingzhao  
本篇文章主要介紹了Linux服務(wù)器下nginx的安全配置詳解,Nginx在很多高流量網(wǎng)站上得到了應(yīng)用,有需要的朋友可了解一下。

Nginx是一個輕量級,高性能的Web服務(wù)器/反向代理和電子郵件 代理(IMAP/POP3),它可以運(yùn)行在UNIX,GNU/Linux,BSD變種,MAC OS X,Solaris和Microsoft Windows上。根據(jù)Netcraft的調(diào)查數(shù)據(jù)顯示,互聯(lián)網(wǎng)上6%的域名都使用了Nginx Web服務(wù)器。Nginx是解決C10K問題的服務(wù)器之一,與傳統(tǒng)服務(wù)器不一樣,Nginx不依賴于線程處理請求,相反,它使用了一個更具擴(kuò)展性的事件驅(qū) 動(異步)架構(gòu)。Nginx在很多高流量網(wǎng)站上得到了應(yīng)用,如WordPress,Hulu,Github和SourceForge。

1、一些常識

  • linux下,要讀取一個文件,首先需要具有對文件所在文件夾的執(zhí)行權(quán)限,然后需要對文件的讀取權(quán)限。
  • php文件的執(zhí)行不需要文件的執(zhí)行權(quán)限,只需要nginx和php-fpm運(yùn)行賬戶的讀取權(quán)限。
  • 上傳木馬后,能不能列出一個文件夾的內(nèi)容,跟php-fpm的運(yùn)行賬戶對文件夾的讀取權(quán)限有關(guān),木馬執(zhí)行命令的權(quán)限跟php-fpm的賬戶權(quán)限有關(guān)。
  • 如果木馬要執(zhí)行命令,需要php-fpm的賬戶對相應(yīng)的sh有執(zhí)行權(quán)限。
  • 讀取一個文件夾內(nèi)的文件,是不需要對文件夾有讀取權(quán)限的,只需要對文件夾有執(zhí)行權(quán)限。

1、頂部配置

#定義 Nginx 運(yùn)行的用戶和用戶組
user nginx;
 
#進(jìn)程文件
pid /var/run/nginx.pid;
 
#錯誤日志位置和級別,debug、info、notice、warn、error、crit
error_log /var/log/nginx/error.log warn;
 
#Nginx worker 的進(jìn)程數(shù),一般可設(shè)置為可用的CPU內(nèi)核數(shù)。
worker_processes 8;
 
#每個 worker 打開文件描述符的最大數(shù)量限制。理論值應(yīng)該是最多打開文件數(shù)(系統(tǒng)的值ulimit -n)與 nginx 進(jìn)程數(shù)相除,但是 nginx 分配請求并不均勻,所以建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;

2、Events 模塊

events {
  #設(shè)置一個worker進(jìn)程同時打開的最大連接數(shù)
  worker_connections 2048;
 
  #告訴nginx收到一個新連接通知后接受盡可能多的連接
  multi_accept on;
 
  #設(shè)置用于復(fù)用客戶端線程的輪詢方法。如果你使用Linux 2.6+,你應(yīng)該使用epoll。如果你使用*BSD,你應(yīng)該使用kqueue。
  use epoll;
}

3、HTTP 模塊

http {
  #隱藏 Nginx 的版本號,提高安全性。
  server_tokens off;
 
  #開啟高效文件傳輸模式,sendfile 指令指定 Nginx 是否調(diào)用sendfile 函數(shù)來輸出文件,對于普通應(yīng)用設(shè)為 on,如果用來進(jìn)行下載等應(yīng)用磁盤 IO 重負(fù)載應(yīng)用,可設(shè)置為 off,以平衡磁盤與網(wǎng)絡(luò) I/O 處理速度,降低系統(tǒng)的負(fù)載。
  sendfile on;
 
  #是否開啟目錄列表訪問,默認(rèn)關(guān)閉。
  autoindex off;
 
  #告訴 Nginx 在一個數(shù)據(jù)包里發(fā)送所有頭文件,而不一個接一個的發(fā)送
  tcp_nopush on;
 
  #告訴 Nginx 不要緩存數(shù)據(jù),而是一段一段的發(fā)送--當(dāng)需要及時發(fā)送數(shù)據(jù)時,就應(yīng)該給應(yīng)用設(shè)置這個屬性,這樣發(fā)送一小塊數(shù)據(jù)信息時就不能立即得到返回值。Nginx 默認(rèn)會始終工作在 tcp nopush 狀態(tài)下。但是當(dāng)開啟前面的 sendfile on; 時,它的工作特點(diǎn)是 nopush 的最后一個包會自動轉(zhuǎn)轉(zhuǎn)換到 nopush off。為了減小那200ms的延遲,開啟 nodelay on; 將其很快傳送出去。結(jié)論就是 sendfile on; 開啟時,tcp_nopush 和 tcp_nodelay 都是on 是可以的。
  tcp_nodelay on;
 
  #日志格式設(shè)定
  log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" "$http_x_forwarded_for"';
  #定義訪問日志,設(shè)置為 off 可以關(guān)閉日志,提高性能
  access_log /var/log/nginx/access.log main;
 
 
  #連接超時時間,單位是秒
  keepalive_timeout 120;
 
  #讀取HTTP頭部的超時時間,默認(rèn)值 60。客戶端與服務(wù)器建立連接后將開始接收HTTP頭部,在這個過程中,如果在一個時間間隔(超時時間)內(nèi)沒有讀取到客戶端發(fā)來的字節(jié),則認(rèn)為超時,并向客戶端返回408 ("Request timed out")響應(yīng)。
  client_header_timeout 60;
 
  #默認(rèn)值 60。與client_header_timeout相似,只是這個超時時間只在讀取HTTP包體時才有效。
  client_body_timeout 10;
 
  #發(fā)送響應(yīng)的超時時間,默認(rèn)值 60。即Nginx服務(wù)器向客戶端發(fā)送了數(shù)據(jù)包,但客戶端一直沒有去接收這個數(shù)據(jù)包。如果某個連接超過send_timeout定義的超時時間,那么Nginx將會關(guān)閉這個連接。
  send_timeout 60;
 
  #連接超時后將通過向客戶端發(fā)送RST包來直接重置連接。這個選項(xiàng)打開后,Nginx會在某個連接超時后,不是使用正常情形下的四次握手關(guān)閉TCP連接,而是直接向用戶發(fā)送RST重置包,不再等待用戶的應(yīng)答,直接釋放Nginx服務(wù)器上關(guān)于這個套接字使用的所有緩存(如TCP滑動窗口)。相比正常的關(guān)閉方式,它使得服務(wù)器避免產(chǎn)生許多處于FIN_WAIT_1、FIN_WAIT_2、TIME_WAIT狀態(tài)的TCP連接。注意,使用RST重置包關(guān)閉連接會帶來一些問題,默認(rèn)情況下不會開啟。
  reset_timedout_connection off;
 
  #要限制連接,必須先有一個容器對連接進(jìn)行計(jì)數(shù),"zone=" 是給它一個名字,可以隨便叫,這個名字要跟下面的 limit_conn 一致。$binary_remote_addr 用二進(jìn)制來儲存客戶端的地址,1m 可以儲存 32000 個并發(fā)會話。
  limit_conn_zone $binary_remote_addr zone=addr:5m;
 
  #給定的key設(shè)置最大連接數(shù)。這里key是addr,我們設(shè)置的值是100,也就是說我們允許每一個IP地址最多同時打開有100個連接。
  limit_conn addr 100;
 
  #對每個連接限速100k。這如果一個IP允許兩個并發(fā)連接,那么這個IP就是限速200K。
  limit_rate 100k;
 
  #include 是一個在當(dāng)前文件中包含另一個文件內(nèi)容的指令。這里我們使用它來加載文件擴(kuò)展名與文件類型映射表。nginx根據(jù)映射關(guān)系,設(shè)置http請求響應(yīng)頭的Content-Type值。當(dāng)在映射表找不到時,使用nginx.conf中default-type指定的默認(rèn)值。
  include /etc/nginx/mime.types;
 
  #設(shè)置文件使用的默認(rèn)的MIME-type
  default_type text/html;
 
  #默認(rèn)編碼
  charset UTF-8;
 
  #該模塊可以讀取預(yù)先壓縮的gz文件,這樣可以減少每次請求進(jìn)行g(shù)zip壓縮的CPU資源消耗。該模塊啟用后,nginx首先檢查是否存在請求靜態(tài)文件的gz結(jié)尾的文件,如果有則直接返回該gz文件內(nèi)容。
  gzip_static off; 
 
  #開啟 gzip 壓縮。
  gzip on;
 
  # 禁用客戶端為 IE6 時的 gzip功能。
  gzip_disable "msie6";
 
  #Nginx做為反向代理的時候啟用。可選值:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any
  gzip_proxied any;
 
  #設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭中的Content-Length中進(jìn)行獲取。建議設(shè)置成大于1k的字節(jié)數(shù),小于1k可能會越壓越大。
  gzip_min_length 1024;
 
  #設(shè)置數(shù)據(jù)的壓縮等級。這個等級可以是1-9之間的任意數(shù)值,9是最慢但是壓縮比最大的。
  gzip_comp_level 5;
 
  #設(shè)置系統(tǒng)獲取幾個單位的緩存用于存儲gzip的壓縮結(jié)果數(shù)據(jù)流。 例如 4 4k 代表以4k為單位,按照原始數(shù)據(jù)大小以4k為單位的4倍申請內(nèi)存。如果沒有設(shè)置,默認(rèn)值是申請跟原始數(shù)據(jù)相同大小的內(nèi)存空間去存儲gzip壓縮結(jié)果。
  gzip_buffers 4 16k;
 
  #設(shè)置需要壓縮的數(shù)據(jù)格式。Nginx默認(rèn)只對text/html進(jìn)行壓縮。
  gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 
  #為打開文件指定緩存,默認(rèn)是沒有啟用的,max 指定緩存數(shù)量,建議和打開文件數(shù)一致,inactive 是指經(jīng)過多長時間文件沒被請求后刪除緩存。
  open_file_cache max=65535 inactive=30s;
 
  #多長時間檢查一次緩存的有效信息
  open_file_cache_valid 30s;
 
  #open_file_cache指令中的inactive參數(shù)時間內(nèi)文件的最少使用次數(shù),如果超過這個數(shù)字,文件描述符一直是在緩存中打開的。出現(xiàn) Last-Modified 不變的情況,就是因?yàn)楫?dāng)nginx對一個靜態(tài)文件緩存后,如果30s內(nèi)還在訪問它,那么它的緩存就一直存在,直到30s內(nèi)你不訪問了為止。
  open_file_cache_min_uses 2;
  #是否記錄cache錯誤
  open_file_cache_errors on;
 
  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}

4、SERVER 模塊

server {
  #監(jiān)聽端口,nginx 會根據(jù)請求的 HOST 來決定使用哪個 SERVER 段的配置。如果沒有匹配的 server_name,則默認(rèn)使用配置文件中第一個。加上 default_server 則可以以指定沒有匹配時的默認(rèn)規(guī)則。
  #listen 80;
  listen 80 default_server;
 
  #域名可以有多個,用空格隔開
  server_name www.test.com test.com;
  root /user/share/nginx/html/test;
 
  #404頁面配置
  error_page  404  /404.html;
 
  #配置 ssl,有需要時開啟。
  ssl on;
  ssl_certificate /etc/nginx/ssl/server.crt;
  ssl_certificate_key /etc/nginx/ssl/server.key;
 
  location / {
    index  index.html index.php;
  }
 
  #圖片緩存時間設(shè)置
  location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ {
    expires 10d;
  }
 
  #JS和CSS緩存時間設(shè)置
  location ~ .*.(js|css)?$ {
    expires 1h;
  }
 
  location ~ [^/]\.php(/|$) {
    fastcgi_index  index.php;
    #開啟 PATH_INFO 支持,作用就是把參數(shù)按照給定的正則表達(dá)式分割成 $fastcgi_script_name 和 $fastcgi_path_info。
    #例如:請求 index.php/id/1 不加此行配置時,fastcgi_script_name 是 /index.php/id/1,fastcgi_path_info 是空。
    #加上之后,fastcgi_script_name 是 index.php,fastcgi_path_info 是 /id/1
    fastcgi_split_path_info ^(.+\.php)(.*)$;
 
    #此值即是 PHP 中 $_SERVER['SCRIPT_FILENAME'] 的值
    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;
 
    #指定FastCGI服務(wù)器監(jiān)聽端口與地址。須和 PHP-FPM 的設(shè)置相同。
    #fastcgi_pass  127.0.0.1:9000;
    fastcgi_pass  unix:/var/run/php5-fpm.sock;
    include fastcgi_params;
  }
}

二、常見的方式

  • 讓木馬上傳后不能執(zhí)行:針對上傳目錄,在nginx配置文件中加入配置,使此目錄無法解析php
  • 讓木馬執(zhí)行后看不到非網(wǎng)站目錄文件:取消php-fpm運(yùn)行賬戶對于其他目錄的讀取權(quán)限
  • 木馬執(zhí)行后命令不能執(zhí)行:取消php-fpm賬戶對于sh的執(zhí)行權(quán)限
  • 命令執(zhí)行后權(quán)限不能過高:php-fpm賬戶不要用root或者加入root組

三、具體的配置

1、禁止php文件的訪問及執(zhí)行

location ~ /(attachments|upload)/.*\.(php|php5)?$ {
  deny all;
}

2、禁止IP的訪問

//禁止的寫法
deny 10.0.0.0/24;
 
//允許的寫法
allow 10.0.0.0/24; 
deny all;

3、根據(jù)用戶的真實(shí) IP 做連接限制

## 這里取得原始用戶的IP地址
map $http_x_forwarded_for $clientRealIp {
  "" $remote_addr;
  ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
 
## 針對原始用戶 IP 地址做限制
limit_conn_zone $clientRealIp zone=TotalConnLimitZone:20m ;
limit_conn TotalConnLimitZone 50;
limit_conn_log_level notice;
 
## 針對原始用戶 IP 地址做限制
limit_req_zone $clientRealIp zone=ConnLimitZone:20m rate=10r/s;
#limit_req zone=ConnLimitZone burst=10 nodelay;
limit_req_log_level notice;
 
## 具體服務(wù)器配置
server {
  listen  80;
  location ~ \.php$ {
        ## 最多 5 個排隊(duì), 由于每秒處理 10 個請求 + 5個排隊(duì),你一秒最多發(fā)送 15 個請求過來,再多就直接返回 503 錯誤給你了
    limit_req zone=ConnLimitZone burst=5 nodelay;
 
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi_params;
  } 
 
}

4、 經(jīng)過多層CDN之后取得原始用戶的IP地址,nginx 配置

map $http_x_forwarded_for $clientRealIp {
    ## 沒有通過代理,直接用 remote_addr
  "" $remote_addr; 
    ## 用正則匹配,從 x_forwarded_for 中取得用戶的原始IP
    ## 例如  X-Forwarded-For: 202.123.123.11, 208.22.22.234, 192.168.2.100,...
    ## 這里第一個 202.123.123.11 是用戶的真實(shí) IP,后面其它都是經(jīng)過的 CDN 服務(wù)器
  ~^(?P<firstAddr>[0-9\.]+),?.*$  $firstAddr;
}
 
## 通過 map 指令,我們?yōu)?nginx 創(chuàng)建了一個變量 $clientRealIp ,這個就是 原始用戶的真實(shí) IP 地址,
## 不論用戶是直接訪問,還是通過一串 CDN 之后的訪問,我們都能取得正確的原始IP地址

5、隱藏版本信息

server_tokens  off;
proxy_hide_header    X-Powered-By;
//或者編譯的時候修改源代碼

6、禁用非必要的方法

if ($request_method !~ ^(GET|HEAD|POST)$ ) {
  return  444;
}

7、禁用擴(kuò)展名

location ~* .(txt|doc|sql|gz|svn|git)$ {
  deny all;
}

8、合理配置響應(yīng)頭

add_header Strict-Transport-Security "max-age=31536000";
add_header X-Frame-Options deny;
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://a.disquscdn.com; img-src 'self' data: https://www.google-analytics.com; style-src 'self' 'unsafe-inline'; frame-src https://disqus.com";

Strict-Transport-Security(簡稱為 HSTS)可以告訴瀏覽器,在指定的 max-age 內(nèi),始終通過 HTTPS 訪問

X-Frame-Options 用來指定此網(wǎng)頁是否允許被 iframe 嵌套,deny 就是不允許任何嵌套發(fā)生

9、拒絕一些User-Agents

if ($http_user_agent ~* LWP::Simple|BBBike|wget) {
  return 403;
}

10、防止圖片盜鏈

valid_referers blocked www.example.com example.com;
if ($invalid_referer) {
  rewrite ^/images/uploads.*\.(gif|jpg|jpeg|png)$ http://www.examples.com/banned.jpg last
}
11、控制緩沖區(qū)溢出攻擊
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;
 
client_body_timeout  10;
client_header_timeout 10;
keepalive_timeout   5 5;
send_timeout     10;

解釋說明
1、client_body_buffer_size 1k-(默認(rèn)8k或16k)這個指令可以指定連接請求實(shí)體的緩沖區(qū)大小。如果連接請求超過緩存區(qū)指定的值,那么這些請求實(shí)體的整體或部分將嘗試寫入一個臨時文件。
2、client_header_buffer_size 1k-指令指定客戶端請求頭部的緩沖區(qū)大小。絕大多數(shù)情況下一個請求頭不會大于1k,不過如果有來自于wap客戶端的較大的cookie它可能會大于1k,Nginx將分配給它一個更大的緩沖區(qū),這個值可以在large_client_header_buffers里面設(shè)置。
3、client_max_body_size 1k-指令指定允許客戶端連接的最大請求實(shí)體大小,它出現(xiàn)在請求頭部的Content-Length字段。如果請求大于指定的值,客戶端將收到一個”Request Entity Too Large” (413)錯誤。記住,瀏覽器并不知道怎樣顯示這個錯誤。
4、large_client_header_buffers-指定客戶端一些比較大的請求頭使用的緩沖區(qū)數(shù)量和大小。請求字段不能大于一個緩沖區(qū)大小,如果客戶端發(fā)送一個比較大的頭,nginx將返回”Request URI too large” (414)

1、client_body_timeout 10;-指令指定讀取請求實(shí)體的超時時間。這里的超時是指一個請求實(shí)體沒有進(jìn)入讀取步驟,如果連接超過這個時間而客戶端沒有任何響應(yīng),Nginx將返回一個”Request time out” (408)錯誤。
2、client_header_timeout 10;-指令指定讀取客戶端請求頭標(biāo)題的超時時間。這里的超時是指一個請求頭沒有進(jìn)入讀取步驟,如果連接超過這個時間而客戶端沒有任何響應(yīng),Nginx將返回一個”Request time out” (408)錯誤。
3、keepalive_timeout 5 5; – 參數(shù)的第一個值指定了客戶端與服務(wù)器長連接的超時時間,超過這個時間,服務(wù)器將關(guān)閉連接。參數(shù)的第二個值(可選)指定了應(yīng)答頭中Keep-Alive: timeout=time的time值,這個值可以使一些瀏覽器知道什么時候關(guān)閉連接,以便服務(wù)器不用重復(fù)關(guān)閉,如果不指定這個參數(shù),nginx不會在應(yīng)答頭中發(fā)送Keep-Alive信息。(但這并不是指怎樣將一個連接“Keep-Alive”)參數(shù)的這兩個值可以不相同。
4、send_timeout 10; 指令指定了發(fā)送給客戶端應(yīng)答后的超時時間,Timeout是指沒有進(jìn)入完整established狀態(tài),只完成了兩次握手,如果超過這個時間客戶端沒有任何響應(yīng),nginx將關(guān)閉連接。

12、控制并發(fā)連接

limit_zone slimits $binary_remote_addr 5m;
limit_conn slimits 5;

13、sysctl.conf配置

# Avoid a smurf attack
net.ipv4.icmp_echo_ignore_broadcasts = 1
 
# Turn on protection for bad icmp error messages
net.ipv4.icmp_ignore_bogus_error_responses = 1
 
# Turn on syncookies for SYN flood attack protection
net.ipv4.tcp_syncookies = 1
 
# Turn on and log spoofed, source routed, and redirect packets
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
 
# No source routed packets here
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
 
# Turn on reverse path filtering
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
 
# Make sure no one can alter the routing tables
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
 
# Don't act as a router
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
 
# Turn on execshild
kernel.exec-shield = 1
kernel.randomize_va_space = 1
 
# Tuen IPv6
net.ipv6.conf.default.router_solicitations = 0
net.ipv6.conf.default.accept_ra_rtr_pref = 0
net.ipv6.conf.default.accept_ra_pinfo = 0
net.ipv6.conf.default.accept_ra_defrtr = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.default.dad_transmits = 0
net.ipv6.conf.default.max_addresses = 1
 
# Optimization for port usefor LBs
# Increase system file descriptor limit
fs.file-max = 65535
 
# Allow for more PIDs (to reduce rollover problems); may break some programs 32768
kernel.pid_max = 65536
 
# Increase system IP port limits
net.ipv4.ip_local_port_range = 2000 65000
 
# Increase TCP max buffer size setable using setsockopt()
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 87380 8388608
 
# Increase Linux auto tuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
# Tcp Windows etc
net.core.rmem_max = 8388608
net.core.wmem_max = 8388608
net.core.netdev_max_backlog = 5000
net.ipv4.tcp_window_scaling = 1

14、在防火墻級限制每個IP的連接數(shù)

/sbin/iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
/sbin/iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 15 -j DROP

15、限制Nginx連接傳出

/sbin/iptables -A OUTPUT -o eth0 -m owner --uid-owner vivek -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用nginx與ffmpeg搭建流媒體服務(wù)器過程詳解

    利用nginx與ffmpeg搭建流媒體服務(wù)器過程詳解

    這篇文章主要給大家介紹了利用nginx與ffmpeg搭建流媒體服務(wù)器的全過程,文中介紹的很詳細(xì),對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • nginx反向代理踩坑實(shí)戰(zhàn)記錄(容器方式)

    nginx反向代理踩坑實(shí)戰(zhàn)記錄(容器方式)

    Nginx是一個高性能的HTTP和反向代理web服務(wù)器,同時也提供了IMAP/POP3/SMTP服務(wù),下面這篇文章主要給大家介紹了關(guān)于nginx反向代理踩坑(容器方式)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Nginx反向代理一個80端口下配置多個微信項(xiàng)目詳解

    Nginx反向代理一個80端口下配置多個微信項(xiàng)目詳解

    這篇文章主要介紹了Nginx反向代理一個80端口下配置多個微信項(xiàng)目詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Nginx添加ipv6模塊以及遇到問題解決方案詳解(親測有效)

    Nginx添加ipv6模塊以及遇到問題解決方案詳解(親測有效)

    IPV4日益稀缺,ipv6已經(jīng)慢慢走上日程,待ipv6在國內(nèi)普及,使用nginx配置ipv6那是肯定的,下面這篇文章主要給大家介紹了關(guān)于Nginx添加ipv6模塊以及遇到問題的解決方案,需要的朋友可以參考下
    2022-09-09
  • nginx線程池源碼分析

    nginx線程池源碼分析

    雖然nginx的源碼非常精致,但是不得不說開發(fā)nginx很有挑戰(zhàn)性,越想更大程度上定制自己的模塊,越需要對nginx的每個細(xì)節(jié)了解頗深。
    2015-08-08
  • nginx簡單配置多個server的方法

    nginx簡單配置多個server的方法

    這篇文章主要介紹了nginx簡單配置多個server的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Nginx手動編譯、安裝超詳細(xì)教程

    Nginx手動編譯、安裝超詳細(xì)教程

    Nginx安裝除了編譯以外,我們還可以直接用操作系統(tǒng)上自帶的工具比如說yum、apt-get直接安裝,這篇文章主要介紹了Nginx手動編譯、安裝超超詳解,需要的朋友可以參考下
    2023-09-09
  • 教你利用Nginx 服務(wù)搭建子域環(huán)境提升二維地圖加載性能的步驟

    教你利用Nginx 服務(wù)搭建子域環(huán)境提升二維地圖加載性能的步驟

    這篇文章主要介紹了利用 Nginx 服務(wù)搭建子域環(huán)境提升二維地圖加載性能,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-09-09
  • 如何快速在Linux中安裝Nginx詳解

    如何快速在Linux中安裝Nginx詳解

    nginx是一款高性能的HTTP反向代理服務(wù)器,支持高并發(fā)連接,官方測試Nginx能夠支撐5萬并發(fā)連接,實(shí)際生產(chǎn)環(huán)境中可以支撐2~4萬并發(fā)連接數(shù),這篇文章主要給大家介紹了關(guān)于如何快速在Linux中安裝Nginx的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • 用Nginx反向代理Node.js的方法

    用Nginx反向代理Node.js的方法

    本篇文章主要介紹了用Nginx反向代理Node.js的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論