原文位址:
http://www.niu12.com/article/2
今天由于寫了一個簡單的基于h5 websoceket的聊天室,再本地都是好好了.
但是上到伺服器後就發現無法行的通,
查了了解到nginx需要進行特殊的配置才能支援websocket.
linux安裝nginx後,在/etc/nginx/conf.d/chat.niu12.com.conf來配置
/*********************************************************/
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 80;
server_name chat.niu12.com;
location / {
proxy_pass http://127.0.0.1:8889;
# 支援websocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
/*********************************************************/
map指令的作用:
根據用戶端請求中$http_upgrade 的值,來構造改變$connection_upgrade的值
即根據變量$http_upgrade的值建立新的變量$connection_upgrade,
建立的規則就是{}裡面的東西。其中的規則沒有做比對,是以使用預設的.
即 $connection_upgrade 的值會一直是 upgrade。然後如果 $http_upgrade為空字元串的話,
那值會是 close。
以上是nginx配置websocket,下面是由于自己在配置的時候發現對nginx還很生疏,就進行學習
什麼是反向代理?
1、 proxy_pass:配置反向代理的路徑。
需要注意的是如果 proxy_pass 的 url 最後為 /,則表示絕對路徑。
否則(不含變量下)表示相對路徑,所有的路徑都會被代理過去
反向代理是指以代理伺服器來接受網絡上的連接配接請求,
然後将請求轉發給内部網絡上的伺服器,
并将從伺服器上得到的結果傳回給請求連接配接的用戶端,
此時代理伺服器對外就表現為一個反向代理伺服器。
什麼是負載均衡?
2、 upstream:配置負載均衡,upstream 預設是以輪詢的方式進行負載,
另外還支援四種模式,分别是:
(1)weight:權重,指定輪詢的機率,weight 與通路機率成正比
(2)ip_hash:按照通路 IP 的 hash 結果值配置設定
(3)fair:按後端伺服器響應時間進行配置設定,響應時間越短優先級别越高
(4)url_hash:按照通路 URL 的 hash 結果值配置設定
其背後一般有多台 server,系統會根據配置的政策
(例如 Nginx 有提供四種選擇)來進行動态調整,
盡可能的達到各節點均衡,進而提高系統整體的吞吐量和快速響應
eg:
upstream api.niu12.com {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
server {
listen 80;
server_name api.niu12.com;
location / {
proxy_pass http://api.niu12.com/;
}
}
轉載于:https://www.cnblogs.com/zhouqi666/p/10138377.html