什么是Nginx?
?Nginx是一款輕量且高性能的web服務器,反向代理服務器以及電子郵件(IMAP/POP3/SMTP)代理服務器,是被廣泛使用的一種HTTP軟負載均衡器。很多大型門戶及網站比如淘寶、新浪都使用了Nginx。為什么要選擇Nginx?
作為 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的并發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個并發連接數的響應。
作為負載均衡器:數據流量過大,單一設備無法擔負,為了防止意外發生就需要多幾臺設備進行數據分流,負載均衡器就相當于一個轉發器,將數據分流到多臺設備上減輕負擔。Nginx安裝簡單,配置簡單,使用靈活,成本又低所以被廣泛使用。
最近項目中只用到了nginx的http反向代理,以下是簡單的配置說明:
#運行用戶
#user? nginx;
#啟動進程,通常設置成和cpu的數量相等
worker_processes? 1;
#全局錯誤日志
error_log ?xx/logs/error.log warn;
#記錄當前啟動的nginx的進程ID
#pid ? ? ? ?xx/logs/nginx.pid;
#單個后臺worker process進程的最大并發鏈接數
events {
worker_connections? 1024;
}
#設定http服務器提供反向代理功能
http {
include ? ? xx/xx/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? 120;
#gzip壓縮開關
gzip? on;
#http服務器
server {
#監聽80端口
listen? ? ? 80;
#使用server_name訪問
server_name? localhost;
#上傳文件極限設置
client_max_body_size 20m;
#編碼模式
#charset utf-8;
#location后面設置映射的路徑
location /browser-sync/ {
proxy_pass http://localhost:3000/browser-sync/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/ceshi/ {
proxy_pass ?http://xx.xx.xx.xx:xx/api/ceshi/;
}
location / {
proxy_pass ?http://localhost:3000/;
}
#錯誤處理頁面
#error_page? 404? ? ? ? ? ? ? /404.html;
#error_page? 500 502 503 504? /50x.html;
#location = /50x.html {
#root? html;
#}
}
}
找到幾個講的比較好的教程,有空的時候可以深入學習:
1.nginx簡易教程