Nginx listen 監(jiān)聽(tīng)端口的實(shí)現(xiàn)配置
listen 指令
監(jiān)聽(tīng)端口: listen address:port [default | default_server | [backlog=num | rcvbuf=size| sndbuf=size | accept_filter | deferred | bind | ipv6only=[on|off] | ssl]];
默認(rèn):listen 80
配置塊: server
含義
指定服務(wù)監(jiān)聽(tīng)的地址,如果使用IP協(xié)議,則可以包括IP地址和端口,如果使用UNIX域套接字協(xié)議,則為文件路徑。
作用域
只能在server塊中設(shè)置,并起作用。
配置解析
default default_server :最終處理的服務(wù)器設(shè)置。
backlog : TCP 中 backlog 隊(duì)列的大小。(能夠承載多少tcp的連接,設(shè)置的越大,承載的tcp連接越多,反之)
rcvbuf :設(shè)置接收緩存的大小。
sndbuf :設(shè)置發(fā)送緩存的大小。
這會(huì)決定服務(wù)器的吞吐速度,如果設(shè)置發(fā)送緩存大小為8k,那么頁(yè)面小于8k就可以一次性發(fā)送。
如果大于8k就需要多次往外面發(fā)送。一般使用默認(rèn)。
accept_filter :設(shè)置 accept 過(guò)濾器大小,僅對(duì) FreeBSD 操作系統(tǒng)起作用。
deferred :三次握手后 worker 仍不處理,實(shí)際數(shù)據(jù)到達(dá)后 worker 再參與處理。(這樣worker進(jìn)程不會(huì)對(duì)三次握手牽扯住,他有足夠的精力處理手頭的工作)
bind :綁定當(dāng)前端口 - 地址對(duì),如: 127.0.0.1:8000(只有多個(gè)IP地址和端口才涉及到綁定,一般都不需要綁定,因?yàn)榉?wù)器只有一個(gè)IP)
ssl :在監(jiān)聽(tīng)的對(duì)口上建立連接必須基于 ssl 。(一般不會(huì)寫(xiě)在listen的后面,一般ssl在其他的地方配置,配置了ssl那么該端口只提供ssl的服務(wù),說(shuō)白了就是https)
ssl需要編譯到ssl模塊,同時(shí)還需要提供ssl證書(shū)。
# 補(bǔ)充知識(shí)點(diǎn):/etc/hosts域名解析文件配置
當(dāng)本地瀏覽器訪問(wèn)某個(gè)域名的時(shí)候,首先會(huì)從/etc/hosts文件中查找,找不到再去dns中去找
,所以你可以直接配置本地的域名#vim /etc/hosts
127.0.0.1 www.baidu.com
設(shè)置方法
對(duì)于IP協(xié)議來(lái)講,可以只配置端口,可以只配置IP,也可以IP和端口都配置。
示例:
- listen 8000; 和*.8000一樣,表示將服務(wù)器所有支持的ip地址都綁定了端口,這樣所有的IP地址都可以提供服務(wù)。(監(jiān)聽(tīng)本機(jī)所有IP的8000端口)
- listen *:8000; 如果只有一塊網(wǎng)卡,那么只有一個(gè)IP,如果是虛擬樣還有虛擬網(wǎng)卡的IP,這樣實(shí)際上就會(huì)涉及到多個(gè)IP,*代表所有的IP。(監(jiān)聽(tīng)本機(jī)所有IP的9000端口)
- listen 127.0.0.1:8000; 這樣寫(xiě)就是只去綁定127.0.0.1的IP(監(jiān)聽(tīng)127.0.0.1的8000端口)
- listen localhost:8000; 這個(gè)和listen 127.0.0.1:8000; 效果一樣(監(jiān)聽(tīng)locahost的9000端口)
- listen 127.0.0.1; 這里默認(rèn)端口就是80(監(jiān)聽(tīng)root權(quán)限用戶127.0.0.1的80端口,非root權(quán)限用戶不允許啟動(dòng)nginx)
- listen [::]:8000; IPV6 監(jiān)聽(tīng)I(yíng)Pv6的8000端口
- listen [fe80::1]; 這個(gè)只寫(xiě)了IPV6的ip,沒(méi)有寫(xiě)端口號(hào)
- listen [:::a8c9:1234]:80;
- listen 443 default_server ssl; 443端口,ssl協(xié)議
- listen 127.0.0.1 default_server accept_filter=dataready backlog=1024; 綜合了上面所有的寫(xiě)法
如果沒(méi)有配置listen指定,對(duì)于root權(quán)限用戶監(jiān)聽(tīng)80端口,對(duì)于非root用戶監(jiān)聽(tīng)8000端口。
示例
只配置端口80
在使用listen的時(shí)候可以直接配置,直接去寫(xiě)端口號(hào),或者去寫(xiě)其IP地址。
一般都是這種直接就一個(gè)80端口,意味著這臺(tái)主機(jī)上面有幾個(gè)IP,他就會(huì)去為這些IP的80端口提供服務(wù)。
下面的這些IP訪問(wèn)80端口都可以提供服務(wù)
[root@jenkins ~]# ifconfig br-a07742cf33c8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.1 netmask 255.255.255.0 broadcast 10.1.0.255 inet6 fe80::42:9bff:fe4a:a821 prefixlen 64 scopeid 0x20<link> docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:90ff:fee6:469b prefixlen 64 scopeid 0x20<link> eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.11.128 netmask 255.255.255.0 broadcast 192.168.11.255 inet6 fe80::20c:29ff:fe00:9de2 prefixlen 64 scopeid 0x20<link> lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host>
root表示web服務(wù)器能夠訪問(wèn)的根,默認(rèn)首頁(yè)是index.html或者index.htm。50x.html表示當(dāng)服務(wù)器發(fā)生錯(cuò)誤的時(shí)候會(huì)自動(dòng)返回50x.html的頁(yè)面
location / { root html; index index.html index.htm; } [root@jenkins nginx]# cd html/ [root@jenkins html]# ls 50x.html index.html
[root@jenkins html]# for ip in `ifconfig | grep -w inet | awk '{print $2}'`;do echo $ip**********;curl $ip;done 10.1.0.1********** <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> 172.17.0.1********** <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> 192.168.11.128********** <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> 127.0.0.1********** <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title>
可以看到這三個(gè)IP的端口都可以對(duì)外提供服務(wù),也就是機(jī)器上面插了幾塊網(wǎng)卡,那么就有幾塊IP,如果配置的時(shí)候不去指定IP,那么這些網(wǎng)卡上的IP就都可以對(duì)外提供服務(wù)。
指定某個(gè)IP對(duì)外提供服務(wù),其他IP不對(duì)外提供服務(wù)
注意,修改之后,需要重啟,重啟和reload是不一樣的。
[root@jenkins conf]# nginx -s quit [root@jenkins conf]# nginx [root@jenkins conf]# for ip in `ifconfig | grep -w inet | awk '{print $2}'`;do echo $ip**********;curl $ip;done 10.1.0.1********** curl: (7) Failed connect to 10.1.0.1:80; Connection refused 172.17.0.1********** curl: (7) Failed connect to 172.17.0.1:80; Connection refused 192.168.11.128********** <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> 127.0.0.1********** curl: (7) Failed connect to 127.0.0.1:80; Connection refused
到此這篇關(guān)于Nginx listen 監(jiān)聽(tīng)端口的實(shí)現(xiàn)配置的文章就介紹到這了,更多相關(guān)Nginx listen 監(jiān)聽(tīng)端口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Nginx跨域問(wèn)題及解決方案(CORS)
文章主要介紹了跨域資源共享(CORS)機(jī)制及其在現(xiàn)代Web開(kāi)發(fā)中的重要性,通過(guò)Nginx,可以簡(jiǎn)單地解決跨域問(wèn)題,適合新手學(xué)習(xí)和應(yīng)用,文章詳細(xì)講解了CORS的基本概念、常見(jiàn)的跨域場(chǎng)景、Nginx如何解決CORS問(wèn)題,以及如何配置Nginx來(lái)處理CORS請(qǐng)求2025-02-02在Nginx中增加對(duì)OAuth協(xié)議的支持的教程
這篇文章主要介紹了在Nginx中增加對(duì)OAuth協(xié)議的支持的教程,OAuth協(xié)議如今廣泛用于社交網(wǎng)絡(luò)的API中,需要的朋友可以參考下2015-06-06nginx利用referer指令實(shí)現(xiàn)防盜鏈配置
nginx模塊ngx_http_referer_module通常用于阻擋來(lái)源非法的域名請(qǐng)求,我們應(yīng)該牢記。下面這篇文章主要介紹了nginx利用referer指令實(shí)現(xiàn)防盜鏈配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-03-03keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法
這篇文章主要介紹了keepalived+lvs 對(duì)nginx做負(fù)載均衡和高可用的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12分享nginx+php-fpm實(shí)現(xiàn)大文件下載排坑的過(guò)程
這篇文章主要介紹了nginx+php-fpm實(shí)現(xiàn)大文件下載排坑的過(guò)程,文中通過(guò)代碼實(shí)例相結(jié)合的形式給大家介紹的非常詳細(xì),具有一定得參考借鑒價(jià)值,需要的朋友參考下吧2018-08-08