1、nginx 怎麼配置ftp伺服器
安裝護衛神.nginx大師,一鍵安裝nginx+php+mysql+ftp
2、nginx為什麼不支持UDP代理而支持TCP
TCP和UDP的區別
tcp連接就像打電話,兩者之間必須有一條不間斷的通路,數據不到達對方,對方
就一直在等待,除非對方直接掛電話。先說的話先到,後說的話後到,有順序。
udp就象寄一封信,發信者只管發,不管到。但是你的信封上必須寫明對方的地址。
發信者和收信者之間沒有通路,靠郵電局聯系。信發到時可能已經過了很久,也可
能根本沒有發到。先發的信未必先到,後發的也未必後到。
說的很簡單,具體的東西當然很復雜。但是java把所有的操作都封裝好了,用起
來到挺方便的
TCP---傳輸控制協議,提供的是面向連接、可靠的位元組流服務。當客戶和伺服器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之後才能傳輸數據。TCP提供超時重發,丟棄重復數據,檢驗數據,流量控制等功能,保證數據能從一端傳到另一端。
UDP---用戶數據報協議,是一個簡單的面向數據報的運輸層協議。UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸數據報前不用在客戶和伺服器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。
用TCP還是UDP,那要看你的程序注重哪一個方面?可靠還是快速?
說到TCP和UDP,首先要明白「連接」和「無連接」的含義,他們的關系可以用一個形象地比喻來說明,就是打電話和寫信。兩個人如果要通話,首先要建立連接——即打電話時的撥號,等待響應後——即接聽電話後,才能相互傳遞信息,最後還要斷開連接——即掛電話。寫信就比較簡單了,填寫好收信人的地址後將信投入郵筒,收信人就可以收到了。從這個分析可以看出,建立連接可以在需要痛心地雙方建立一個傳遞信息的通道,在發送方發送請求連接信息接收方響應後,由於是在接受方響應後才開始傳遞信息,而且是在一個通道中傳送,因此接受方能比較完整地收到發送方發出的信息,即信息傳遞的可靠性比較高。但也正因為需要建立連接,使資源開銷加大(在建立連接前必須等待接受方響應,傳輸信息過程中必須確認信息是否傳到及斷開連接時發出相應的信號等),獨佔一個通道,在斷開連接錢不能建立另一個連接,即兩人在通話過程中第三方不能打入電話。而無連接是一開始就發送信息(嚴格說來,這是沒有開始、結束的),只是一次性的傳遞,是先不需要接受方的響應,因而在一定程度上也無法保證信息傳遞的可靠性了,就像寫信一樣,我們只是將信寄出去,卻不能保證收信人一定可以收到。
TCP是面向連接的,有比較高的可靠性,
一些要求比較高的服務一般使用這個協議,如FTP、Telnet、SMTP、HTTP、POP3等,而UDP是面向無連接的,使用這個協議的常見服務有DNS、SNMP、QQ等。對於QQ必須另外說明一下,QQ2003以前是只使用UDP協議的,其伺服器使用8000埠,偵聽是否有信息傳來,客戶端使用4000埠,向外發送信息(這也就不難理解在一般的顯IP的QQ版本中顯示好友的IP地址信息中埠常為4000或其後續埠的原因了),即QQ程序既接受服務又提供服務,在以後的QQ版本中也支持使用TCP協議了。
3、虛擬機安裝nginx和ftp,怎麼映射到ftp伺服器上
你的意義應該是如何把nginx和ftp整合吧。
建議你用護衛神.nginx大師,一鍵安裝nginx+php+mysql+ftp
在線開設站點,FTP和nginx默認就捆綁了
4、nginx.conf中ftp和負載均衡可以同時配置么
將同一個主機名添加多個A記錄,DNS將解析請求安裝A記錄的順序,隨即分配到不同的IP上,使用dig baidu.com 就可以看到不同的A記錄對應的IP地址。
可靠性低,其中一台出現故障,就不會給予回應,就算從DNS去掉該伺服器IP,但是也會保存在各地區的ISP眾多的DNS緩存中。
系統股災不均衡,使用簡單輪詢,不能計算出伺服器的負載差異,所以有可能客戶集中請求到其中某一台伺服器。
5、伺服器,mysql,php,nginx,ftp之間什麼關系?各是負責哪方面的工作?
第一個伺服器的是硬體吧,一台電腦或者大型機什麼的,現在的伺服器一般是用的Linux的操作系統,用戶通過連接到這台伺服器接收信息,是網頁的基礎設施。
mysql是資料庫。可以理解為硬碟上的一塊區域,專門存放各種數據,比如用戶信息,舉個例子就是騰訊用戶的QQ號和密碼之類的。
php是語言,用於編寫應用程序,諸如接收用戶信息和響應,連接到資料庫(mysql),就是用PHP寫的。
nginx是伺服器軟體。用於發布。將應用程序(PHP寫的)通過該軟體才能更方便的給用戶使用。
ftp是文件服務,專門負責文件傳輸的。
6、windows 下生產環境 web 伺服器部署 nginx 好還是 apache 好
我認為IIS好,你可以用護衛神.主機大師,一鍵安裝IIS+ASP+PHP+ASP.NET+MYSQL+FTP
7、怎麼nginx-1.8.0.tar.gz拷貝至linux伺服器
文件拷貝啊,這樣的方法就比較簡單:ftp可以實現,scp可以實現。但是最簡單還是xshell的xftp不用安裝,使用的是22埠。建議試試,linux更好知識建議參考《linux就該這樣學》。一些安全的知識,使用的技巧,都可以試試。加油!!!
8、如何正確配置Nginx + PHP
對很多人而言,配置Nginx+PHP無外乎就是搜索一篇教程,然後拷貝粘貼。聽上去似乎也沒什麼問題,可惜實際上網路上很多資料本身年久失修,漏洞百出,如果大家不求甚解,一味的拷貝粘貼,早晚有一天會為此付出代價。
假設我們用PHP實現了一個前端控制器,或者直白點說就是統一入口:把PHP請求都發送到同一個文件上,然後在此文件里通過解析「REQUEST_URI」實現路由。
此時很多教程會教大家這樣配置Nginx+PHP:
server {
listen 80;
server_name foo.com;
root /path;
location / {
index index.html index.htm index.php;
if (!-e $request_filename) {
rewrite . /index.php last;
}
}
location ~ .php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /path$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
這裡面有很多錯誤,或者說至少是壞味道的地方,大家看看能發現幾個。
…
我們有必要先了解一下Nginx配置文件里指令的繼承關系:Nginx配置文件分為好多塊,常見的從外到內依次是「http」、「server」、「location」等等,預設的繼承關系是從外到內,也就是說內層塊會自動獲取外層塊的值作為預設值(有例外,詳見參考)。
參考:UNDERSTANDING THE NGINX CONFIGURATION INHERITANCE MODEL
…
讓我們先從「index」指令入手吧,在問題配置中它是在「location」中定義的:
location / {
index index.html index.htm index.php;
}
一旦未來需要加入新的「location」,必然會出現重復定義的「index」指令,這是因為多個「location」是平級的關系,不存在繼承,此時應該在「server」里定義「index」,藉助繼承關系,「index」指令在所有的「location」中都能生效。
參考:Nginx Pitfalls
…
接下來看看「if」指令,說它是大家誤解最深的Nginx指令毫不為過:
if (!-e $request_filename) {
rewrite . /index.php last;
}
很多人喜歡用「if」指令做一系列的檢查,不過這實際上是「try_files」指令的職責:
try_files $uri $uri/ /index.php;
除此以外,初學者往往會認為「if」指令是內核級的指令,但是實際上它是rewrite模塊的一部分,加上Nginx配置實際上是聲明式的,而非過程式的,所以當其和非rewrite模塊的指令混用時,結果可能會非你所願。
參考:IfIsEvil and How nginx 「location if」 works
…
下面看看「fastcgi_params」配置文件:
include fastcgi_params;
Nginx有兩份fastcgi配置文件,分別是「fastcgi_params」和「fastcgi.conf」,它們沒有太大的差異,唯一的區別是後者比前者多了一行「SCRIPT_FILENAME」的定義:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
注意:$document_root 和 $fastcgi_script_name 之間沒有 /。
原本Nginx只有「fastcgi_params」,後來發現很多人在定義「SCRIPT_FILENAME」時使用了硬編碼的方式,於是為了規范用法便引入了「fastcgi.conf」。
不過這樣的話就產生一個疑問:為什麼一定要引入一個新的配置文件,而不是修改舊的配置文件?這是因為「fastcgi_param」指令是數組型的,和普通指令相同的是:內層替換外層;和普通指令不同的是:當在同級多次使用的時候,是新增而不是替換。換句話說,如果在同級定義兩次「SCRIPT_FILENAME」,那麼它們都會被發送到後端,這可能會導致一些潛在的問題,為了避免此類情況,便引入了一個新的配置文件。
參考:FASTCGI_PARAMS VERSUS FASTCGI.CONF – NGINX CONFIG HISTORY
此外,我們還需要考慮一個安全問題:在PHP開啟「cgi.fix_pathinfo」的情況下,PHP可能會把錯誤的文件類型當作PHP文件來解析。如果Nginx和PHP安裝在同一台伺服器上的話,那麼最簡單的解決方法是用「try_files」指令做一次過濾:
try_files $uri =404;
參考:Nginx文件類型錯誤解析漏洞
…
依照前面的分析,給出一份改良後的版本,是不是比開始的版本清爽了很多:
server {
listen 80
server_name foo.com;
root /path;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php;
}
location ~ .php$ {
try_files $uri =404;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
實際上還有一些瑕疵,主要是「try_files」和「fastcgi_split_path_info」不夠兼容,雖然能夠解決,但方案比較醜陋,具體就不多說了,有興趣的可以參考問題描述。
補充:因為「location」已經做了限定,所以「fastcgi_index」其實也沒有必要.
9、linux版本nginx解壓後ftp到linux上還需要安裝么
你的nginx是編譯好的? 如果是,那就直接把ftp目錄和nginx的www目錄做個軟鏈就行了.
10、WEB伺服器,FTP伺服器和流媒體服務各自主要功能及其主要配置平台
通俗的說,WEB伺服器--網站發布,FTP伺服器--上傳下載,流媒體服務--流媒體發布。
windows 2003 windows 2008都可以配置,對硬體要求不高的