當前位置:首頁 » 城管服務 » nginx伺服器

nginx伺服器

發布時間: 2020-12-05 06:30:58

⑴ 如何在Nginx服務器中設置多個站點

這里以配置2個站點(2個域名)為例,n 個站點可以相應增加調整,假設:
IP地址: *.*.*.*
域名1 example1.com 放在 /www/example1
域名2 example2.com 放在 /www/example2
配置 nginx virtual hosting 的基本思路和步驟如下:
把2個站點 example1.com, example2.com 放到 nginx 可以訪問的目錄 /www/
給每個站點分別創建一個 nginx 配置文件 example1.com.conf,example2.com.conf, 並把配置文件放到 /etc/nginx/vhosts/
然後在 /etc/nginx.conf 裡面加一句 include 把步驟2創建的配置文件全部包含進來(用 * 號)
重啟 nginx
具體過程
下面是具體的配置過程:

1、在 /etc/nginx 下創建 vhosts 目錄
mkdir /etc/nginx/vhosts

2、在 /etc/nginx/vhosts/ 里創建一個名字為 example1.com.conf 的文件,把以下內容拷進去
server {
listen 80;
server_name example1.com www. example1.com;

access_log /www/access_ example1.log main;

location / {
root /www/example1.com;
index index.php index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/example1.com/$fastcgi_script_name;
include fastcgi_params;
}

location ~ /\.ht {
deny all;
}
}

3、在 /etc/nginx/vhosts/ 里創建一個名字為 example2.com.conf 的文件,把以下內容拷進去
server {
listen 80;
server_name example2.com www. example2.com;

access_log /www/access_ example1.log main;

location / {
root /www/example2.com;
index index.php index.html index.htm;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /www/example2.com/$fastcgi_script_name;
include fastcgi_params;
}

location ~ /\.ht {
deny all;
}
}

4、打開 /etc/nginix.conf 文件,在相應位置加入 include 把以上2個文件包含進來
user nginx;
worker_processes 1;

# main server error log
error_log /var/log/nginx/error.log ;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

# main server config
http {
include 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"';

sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;

server {
listen 80;
server_name _;
access_log /var/log/nginx/access.log main;
server_name_in_redirect off;
location / {
root /usr/share/nginx/html;
index index.html;
}
}

# 包含所有的虛擬主機的配置文件
include /usr/local/etc/nginx/vhosts/*;
}

5、重啟 Nginx
/etc/init.d/nginx restart

⑵ nginx 搭建多少台web伺服器

設置虛擬伺服器
listen:
Nginx 配置文件至少包含一個 server 命令 ,用來定義虛擬伺服器。當請求到來時, Nginx 會首先選擇一個虛擬伺服器來處理該請求。
虛擬伺服器定義在 http 上下文中的 server 中:

http {
server {
# Server configuration
}
}

注意: http 中可以定義多個 server

server 配置塊使用 listen 命令監聽本機 IP 和埠號(包括 Unix domain socket and path),支持 IPv4、IPv6,IPv6地址需要用方括弧括起來:

server {
listen 127.0.0.1:8080; # IPv4地址,8080埠
# listen [2001:3CA1:10F:1A:121B:0:0:10]:80; # IPv6地址,80埠
# listen [::]:80; # 聽本機的所有IPv4與IPv6地址,80埠
# The rest of server configuration
}

上述配置,如果不寫埠號,默認使用80埠,如果不寫 IP ,則監聽本機所有 IP。

⑶ Nginx伺服器錯誤是什麼原因

Nginx伺服器錯誤一般有以下幾點原因:

1、請求的header過大。nginx默認的header長度上限是4k,如果超過了這個值,nginx會直接返回400錯誤.

解決方法:配置nginx.conf相關設置。可以通過以下2個參數來調整header上限:

client_header_buffer_size 16k;large_client_header_buffers 4 16k。

2、上傳文件過程中出現錯誤。這時瀏覽器顯示「413 Request Entity Too Large」。這是因為沒有設置client_max_body_size,這個參數默認只是1M,也就是說發布的文章內容大小不能超過1M。

解決方法:增加如下兩行到nginx.conf的http{}段, 增大nginx上傳文件大小限制:設置允許發布內容為8M:client_max_body_size 8M;client_body_buffer_size 128k。

另外如果運行的是php,那麼還要檢查php.ini,這個大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,這樣就不會因為提交數據大小不一致出現的錯誤:post_max_size = 8M;upload_max_filesize = 6M。

修改完配置後,別忘記重新載入。

3、客戶端在為等到伺服器相應返回前就關閉了客戶端描述符。一般出現在客戶端設置超時後,伺服器主動關閉。

解決方法:根據實際Nginx後端伺服器的處理時間修改客戶端超時時間。

4、腳本錯誤(php語法錯誤、lua語法錯誤)。

解決方法:查看nginx_err_log php_err_log。

5、訪問量過大,系統資源限制,不能打開過多文件。 磁碟空間不足。(access log開啟可能導致磁碟滿溢,伺服器主動關閉)。

解決方法:修改/etc/sysctl.conf文件,並使用下面的命令確認: #sysctl -p。要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。

6、後端服務無法處理,業務中斷。

解決方法:從後端日誌獲取錯誤原因,解決後端伺服器問題。

7、後端伺服器在超時時間內,未響應Nginx代理請求。

解決方法:根據後端伺服器實際處理情況,調正後端請求超時時間。

8、網站頁面緩存過大。

解決方法:配置nginx.conf相關設置:fastcgi_buffers 8 128k;send_timeout 60。


⑷ nginx一般和什麼伺服器搭配使用

nginx網站服務一般在linux系統下使用,性能可以得到正常的發揮,在我windows下,事倍功半。

我這邊經常使用centos6.8 64位下使用nginx。nginx安裝教程如下。



yum-yinstallgccgcc-c++ncurses-devellibxml2-devel
openssl-develcurl-devellibjpeg-devellibpng-develautoconfpcre-devel
libtool-libsfreetype-develgdzlib-develzipunzip

-devel
glibc-develglibc-staticglib2-develbzip2-devel
gettext-devellibcap-devellogrotatentp
libmcrypt-develpatch------安裝nginx需要的組件

wgethttp://nginx.org/download/nginx-1.10.2.tar.gz---獲取nginx

tar-zxvf./nginx-1.10.2.tar.gz
cd./nginx-1.10.2

./configure
--with-stream--開啟nginxtcp代理服務
--with-http_ssl_mole---開啟nginxhttps服務
需要開啟那些請網路查下,一般默認就可以的
make----編譯nginx
makeinstall----安裝nginx

chkconfignginxon--開機啟動nginx

⑸ nginx伺服器有什麼作用

1、靜態HTTP伺服器
2、反向代理伺服器
3、負載均衡
4、虛擬主機
5、FastCGI

⑹ 如何在linux下搭建nginx伺服器

1、下載後解壓nginx

tar -zxvf nginx-1.4.7.tar.gz
2、安裝gcc等依賴包
yum -y install gcc pcre-devel openssl openssl-devel
3、開始安裝nginx
cd進入nginx-1.4.7目錄內
./configure 編譯
make&&make install 這一步需要先cd出來嗎?在裡面會安裝失敗嗎?我忘了 = =
4、此時就已經安裝完成,默認安裝在了/usr/local/nginx/sbin/nginx
5、啟動
命令行輸入/usr/local/nginx/sbin/nginx,沒反應
輸入ps -ef | grep nginx查看nginx進程
6、測試
命令行輸入 curl http://127.0.0.1
會出現welcome to nginx之類的就說明對了!
7、加入到環境變數
vim /etc/profile
尾行添加
PATH=$PATH:/usr/local/nginx/sbin
export PATH
保存關閉後運行 source /etc/profile 即會加入環境變數
8、常用命令
[root@ usr]# nginx -s stop停止nginx
[root@ usr]# nginx 運行nginx
[root@ usr]# nginx -s reload 重啟nginx
[root@ usr]# nginx -t 測試nginx
9、防火牆允許外網訪問
vim /etc/sysconfig/iptables
添加過濾規則
-A -INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
好像是保存後即時生效把?
service iptables stop
service iptables start
重啟服務後還是會生效,親測
10、修改網站默認根目錄路徑
網站默認根目錄放在/usr/local/nginx/html
命令行輸入 vim /usr/local/nginx/conf/nginx.conf
找到改為
server {
listen 80;
server_name localhost;
root /var/www/html/default;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# root html;
index index.html index.htm;
}
注釋掉下面的,在上面添加自己想要的根目錄,重啟nginx才能生效。

⑺ 為什麼要使用nginx伺服器

我們大多數的客戶在他們的伺服器上使用Apache作為Web伺服器,尤其是部署在一個基於PHP系統的前端並且使用mod-PHP。鑒於擴張性和性能方面的原因,我們通常會建議他們改用Nginx和FPM。

Apache是非常強大的Web伺服器,模塊化結構,也是Web服務端的鼻祖。除了捆綁一些其他的工具外,Apache已經成為了世上最廣泛部署的開源系統,直到最近,世界上大多數網站仍運行著Apache系統。

但是,Apache並不是完美的,並且不再適合大規模系統。為什麼?因為他的進程模式雖然簡單而靈活,但並不適合大規模尤其是當要處理像PHP這種需要佔用大量內存應用程序代碼時。

一個典型的網路應用伺服器由兩部分組成。客戶端連接部分負責用戶瀏覽器與HTTP連接,保持長時間的TCP/IP協議,通常是1到2分鍾。對於一個大型的系統,伺服器可能要同時承擔和處理數以萬計的並發連接。

這直接與Apache只有 500條進程即500個HTTP連接的處理能力上限相沖突。而現今的瀏覽器讓這個問題更加嚴重, 因為現在的瀏覽器平均每個主機會打開六個網站鏈接(幾年前是兩個網站鏈接)。所以當超過100個用戶同時訪問時,Apache就已經滿負荷了。

第二部分是應用程序處理部分,這部分承擔了代碼運算。在大多數系統中,這部分工作是最消耗RAM和CPU資源的,因此進程數量必須被嚴格限制,通常是大約每1GB的內存10個進程,或者每個CPU核心兩個進程。因此一台4GB RAM、16內核的伺服器最多隻能運行32個應用程序進程。

但是,問題的關鍵是,Apache直接連接前端客戶端通訊組件與後端應用程序進程組件。如此一來,前端部分往往保持長時間的連接,常常達到幾分鍾,這導致後端部分將持續消耗內存和CPU資源。目前還沒有直接的方法能夠在大型系統中找到前後端服務的平衡,因此他們必須被分離開來。

目前有兩個主要的解決方法。第一個方法,也是現有系統上最容易的方法,就是在Apache前端安裝負載均衡伺服器或者Nginx來處理客戶端連接部分。負載均衡伺服器,像HAProxy或者Nginx能輕松處理成千上萬條並發的連接,並使Apache能夠真正的僅作為後端應用程序工作,來處理32個或是更多的進程。

第二種方案,也是最通用的辦法就是用Nginx替換Apache,同時使用PHP-PFM作為應用伺服器。就像之前所提到的,這將分割前端客戶端通信部分和後端應用程序部分。Nginx處理HTTP通訊協議,同時FPM處理後端應用程序部分,和那32個進程進行交互。

然而這幾種方法仍然還存在一些問題,主要是如何載入伺服器的RPC調用,以及如何釋放已經完成的RPC調用。 這兩個問題都會在其他的博客中加以詳解。

另外,只使用Nginx的解決方法會給那些嚴重依賴於Apache功能的應用程序帶來問題,尤其是特別依賴rewrite rules, .htaccess, 或者mod_security等一些可選組件的應用程序。在這種情況下,在Apache前端增加安裝Nginx是最好的方法。

通常來說,所有新的系統都應該使用Nginx和PHP-FPM來部署。這能提供高性能增長特性,並且是平衡用戶和內存,CPU資源的最佳選擇。已存在的系統可以在前端使用Nginx或者HAProxy以達到同樣的效果,以便在當今現代網路環境中為用戶提供更優質的服務。

⑻ 為什麼要使用nginx伺服器

這里做了些基準測試表明nginx打敗了其它的輕量級的web伺服器和代理伺服器,同樣也贏了相對不是那麼輕量級的產品。

有人說這些基準測試是不準確的,因為在這樣那樣的環境下,做的比較不一致。我傾向同意基準測試只是告訴了我們其中一部分情況,你能做的是消除偏見(有人見過所有人都同意一個基準測試是公平的嗎?我是沒見過。)

不管怎樣,這篇文章不是做基準測試來讓人們爭論(如果你喜歡,可以在Google上找到那樣的文章),相反,下面的引述來自人們在現實世界中使用Nginx,在真實的負載下,服務於真正的應用和網站。

引述

我們投資的一些公司把web平台切換到Nginx後,可以顯著的解決擴展問題。Nginx明顯有效的實現了今天互聯網上最大網站數量的增長。

– Thomas Gieselmann, BV Capital.


對今天運行網站的所有人的建議是,想打破性能限制就研究下能否使用Nginx。CloudFlare去年在一個相對較小的基礎設施上已經擴展到可以處理每
月超過150億的瀏覽量,很大程度上是因為Nginx的擴展性。我的經驗表明切換到Nginx可以最大限度的利用現代的操作系統和現有的硬體資源。

– Matthew Prince, CloudFlare的聯合創始人和CEO

Apache和Nginx都有能力提供每秒鍾龐大的請求服務,但是隨著並發數量的增加,Apache的性能開始下降,然而Nginx的性能幾乎不會下降。

這里最好的一點是:因為Nginx是基於事件的,它不用為每個請求產生新的進程或線程,所以它的內存使用很低。在我的基準測試中,它的內存使用坐落在2.5M,Apache使用得更多。

– WebFaction


對Nginx v0.5.22 and Apache
v2.2.8我用ab(Apache的基準測試工具)跑了一個簡單的測試。在測試過程中,我用vmstat和top檢測系統。結果表明在提供靜態內容
時,Nginx做得比Apache好。兩個伺服器都在並發數100時表現最佳。Apache使用4個工作進程(線程模式),30%的CPU和17MB的內
存,每秒鍾處理6,500次請求。Nginx使用一個工作進程,15%的CPU,1MB內存,每秒鍾處理11,500次請求。

– Linux Journal

Apache好比是微軟Word,它有100萬個選項,但是你只需要其中6個。Nginx就處理那6項任務,但處理其中5項任務時速度比Apache快50倍。

– Chris Lea

我現在使用Nginx在單一伺服器上處理每天超過數千萬(也就是每秒鍾幾百次)的反向代理HTTP請求。在負載高峰期,它消耗大約15MB的內存和10%的CPU,在我的特定配置下(FreeBSD 6)。

在同樣的負載下,Apache表現大跌(在大約使用1000個進程後,上帝知道使用了多少內存),Pound表現大跌(如此多的線程,所有的線程棧會消耗400MB以上的內存),還有Lighttpd每小時泄露20MB以上內存(使用更多CPU,但不顯著)。

– Bob Ippolito in the TurboGears mailing list, 2006-08-24

我們現在使用Nginx 0.6.29的upstream hash模塊為我們需要的Varnish代理提供靜態雜湊。我們通常處理8-9千次請求/秒,大約1.2Gb/秒數據在幾台Nginx伺服器間傳輸,而且還有很大的成長空間。

– WordPress.com

直到今天,我們一直使用Pound來解決Justin.tv 的負載均衡。它一直使用20%的CPU,在高峰期會達到80%。在極高的負載下,它偶爾會崩潰。

我們只是切換到了Nginx,負載馬上就降到了大約3%的CPU使用。我們的頁面感覺更快了,盡管這可能是我的錯覺。不僅它的配置文件格式容易理解和配置,而且還提供了完整的web伺服器功能。我們再也沒有遇到尖峰期了,而且我懷疑現有的性能會徹底打敗Pound。

– Emmett Shear

我們使用Nginx作為主要的軟體用於一個免費的託管平台,我已經在Nginx中開發了一個特定的模塊用於banner潛入和統計計算,現在我們的中央伺服器可以處理大約150-200Mbit/s高度分散的http流量(所有的文件都很小)。

我認為這是非常好的結果。因為在同樣的伺服器上面Apache不管怎麼優化,甚至都不能處理60-80Mbit/s。

– Alexey Kovyrin


陣子,我們把我們的前端IMAP/POP代理從perdition切換到了nginx…,現在我們又使用nginx來做前端web代理伺服器…。最終的結
果是,現在的每台前端代理伺服器可以保持超過10,000並發(IMAP, POP, Web &
SMTP)連接(其中很多還是SSL),僅僅只使用了大約10%的CPU。

– FastMail.fm blog

最近,我們的靜態內容伺服器切換到了Nginx,無疑這是這么多年來我印象最深刻的一款web伺服器。我們運行在一台配有8G內存的機器上,但是nginx進程只使用了可笑的1.4Mb。

– Philip Jacob

我們已經用nginx取代了Squid(反向代理)+Apache的方案,平均負載和CPU使用一樣降低了一半。另外我們的基準測試表明新的配置每秒鍾可以處理的請求數是舊配置的2-3倍。

– HowtoForge

我們用一些CMS系統( Wordpress, Drupal, Joomla, TYPO3等)做了基準測試,結果是Nginx提供網頁的速度比Apache快了50%,同時nginx每秒鍾處理的請求數(RPS)是Apache的177%。

⑼ tomct和nginx有什麼不同,都是用來做web伺服器的嗎

從應用方來面
tomcat一般是做動態源解析才會用得到,支持jsp的解析,需要配置JDK支持
nginx,則一般是做靜態,本身不具備動態解析功能,需要配置其他插件或通過其他軟體協同才具備動態功能,比如php,tomcat,或者proxypass到win2008的iis伺服器做ASP的動態鏈接等,但nginx在靜態上的功能非常強大,也可做訪問控制,而且可以做成各種協議負載伺服器,包括流媒體的也可以做,具體得去官方網站去看;
在性能方面
如果再不做系統調優的情況下
tomcat一般支持並發並不高100個差不多了
nginx在靜態方面支持並發輕松達幾萬

如果這是個面試的人給你出的這道題目上你回答,你可以簡單的告訴他,兩者應用領域不一樣,tomcat是做java語言的動態解析,而nginx則是一款功能強大的負載軟體,配合各種插件可以實現各種功能

⑽ 如何在遠程Linux伺服器上搭建Nginx

1.將nginx的壓縮包nginx-1.8.0.tar.gz上傳到Linux伺服器

2.由於nginx是C語言開發的並且我們這里是通過編譯nginx的源碼來安裝nginx,所以Linux上要安裝C語言的編譯環境gcc,

如果已經安裝此步可以省略,否則執行命令:

yum install gcc-c++

3.nginx的http模塊使用pcre來解析正則表達式,所以需要在linux上安裝pcre庫。

yum install -y pcre pcre-devel

4.zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對http包的內容進行gzip,所以需要在linux上安裝zlib庫。

yum install -y zlib zlib-devel

5.nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),所以需要在linux安裝openssl庫。

yum install -y openssl openssl-devel

6.在Linux上創建nginx的臨時目錄,注意我這里是在Linux文件系統下的
/var下創建文件夾temp在temp下創建nginx。即:/var/temp/nginx

7.執行命令:

./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_mole --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi

8.編譯源碼,安裝nginx:

makemake install

9.啟動nginx:

cd /usr/local/nginx/sbin/./nginx -c /usr/local/nginx/conf/nginx.conf

在瀏覽器中訪問: http://localhost 出現下面界面表示安裝成功:

我們此時也可以查看到nginx進程的運行情況:

ps aux|grep nginx

10.nginx伺服器的停止方式:

方式一:先查出nginx進程id再使用kill命令強制殺掉進程。

cd /usr/local/nginx/sbin./nginx -s stop

方式二(推薦):待nginx進程處理任務完畢進行停止。

cd /usr/local/nginx/sbin./nginx -s quit

以上就是本文的全部內容,希望對大家的學習有所幫助

熱點內容
影視轉載限制分鍾 發布:2024-08-19 09:13:14 瀏覽:319
韓國電影傷口上紋身找心裡輔導 發布:2024-08-19 09:07:27 瀏覽:156
韓國電影集合3小時 發布:2024-08-19 08:36:11 瀏覽:783
有母乳場景的電影 發布:2024-08-19 08:32:55 瀏覽:451
我准備再看一場電影英語 發布:2024-08-19 08:14:08 瀏覽:996
奧迪a8電影叫什麼三個女救人 發布:2024-08-19 07:56:14 瀏覽:513
邱淑芬風月片全部 發布:2024-08-19 07:53:22 瀏覽:341
善良媽媽的朋友李采潭 發布:2024-08-19 07:33:09 瀏覽:760
哪裡還可以看查理九世 發布:2024-08-19 07:29:07 瀏覽:143
看電影需要多少幀數 發布:2024-08-19 07:23:14 瀏覽:121