1. 程式人生 > >nginx虛擬主機三種模式的簡單實現

nginx虛擬主機三種模式的簡單實現

_for nod send nop request user 模式 -s hit

main配置段:

user nginx; #指定用於運行worker進程的用戶和組

worker_processes 4; #worker的進程數;通常應該為CPU的核心數或核心數減1

worker_cpu_affinity 0001 0010 0100 1000; 進程綁定在CPU上的指定核上

error_log /var/log/nginx/error.log; #錯誤日誌存放路徑

pid /run/nginx.pid; #nginx運行進程路徑

worker_rlimit_nofile 51200; #單個worker進程所能夠打開的最大文件數量

daemon on; #是否以守護進程方式啟動nginx進程

events配置段:

events {

worker_connections 50000; #每個worker進程所能夠打開的最大並發連接數量;但是不能大於worker_rlimit_nofile 數量

use epoll; #指明並發連接請求的處理方法

accept_mutex on; #是否打開負載均衡鎖,處理新的連接請求的方法;on意味著由worker輪流處理新請求,off意味著每個新請求的到達都會通知worker進程。默認需要開啟


}

http配置段:包含server配置段,其server配置段也可以放置於/etc/nignx/conf.d/目錄下

http {

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 /var/log/nginx/access.log main;


sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 65;

types_hash_max_size 2048;


include /etc/nginx/mime.types;

default_type application/octet-stream;

include /etc/nginx/conf.d/*.conf;

}


server配置段:可以再主配置文件/etc/nginx/nginx.conf中的http中配置,也可以在/erc/nginx/conf.d/分別創建自己的conf文件。

1、先在Nginx的默認路徑下創建三個目錄,也可以在其他指定路徑下存放html文件:

mkdir /usr/share/nginx/{yuming,port,IP}

mkdir -p /lufei/root/{yuming,port,IP}

2、分別在各自的路徑下面寫入如下index.html的文件

域名網頁:

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於域名的虛擬主機-lufei-yuming</h2>

<h3>www.lufei-yuming.com</h3>

</body>

</html>



Port網頁

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於端口的虛擬主機-lufei-port</h2>

<h3>www.lufei-port.com</h3>

</body>

</html>



IP網頁

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於IP的虛擬主機-lufei-IP</h2>

<h3>www.lufei-IP.com</h3>

</body>

</html>

說明:當服務器都配置完成後,需要在本地主機上做地址和域名解析

01、以win10為例

C:\WINDOWS\system32\drivers\etc路徑下的hosts文件添加如下內容:192.168.1.72 www.lufei.com

02、若要在Linux中訪問:

在/etc/hosts中配置 192.168.1.72 www.lufei.com

3、基於域名的配置:在/etc/nginx/conf.d/下創建一個文件yuming.conf,配置完成後nginx -s reload 重新加載

server {

listen 80; #監聽端口 80

server_name www.lufei.com *.lufei.com lufei.com *.lufei.*; #域名的配置,其書寫格式可以使用正則表達式。

location / {

#root /lufei/root/yuming; #根目錄的的絕對路徑配置

root yuming; # 相對路徑,相對nginx根目錄。nginx的默認路徑:/usr/share/nginx(yum安裝方式的)

index index.html; #默認主文件。默認跳轉到index.html頁面

}

}

訪問測試:

[root@localhost yuming]# curl www.lufei.com

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於域名的虛擬主機-lufei-yuming</h2>

<h3>www.lufei-yuming.com</h3>

</body>

</html>

4、基於port的配置:在/etc/nginx/conf.d/下創建一個文件port.conf,配置完成後nginx -s reload 重新加載

[root@localhost yuming]# cat /etc/nginx/conf.d/port.conf

server {

listen 2225; #監聽端口 2225

server_name www.lufei.com *.lufei.com lufei.com *.lufei.*; #域名的配置,其書寫格式可以使用正則表達式。

location / {

#root /lufei/root/port; #根目錄的的絕對路徑配置

root port; # 相對路徑,相對nginx根目錄。nginx的默認路徑:/usr/share/nginx(yum安裝方式的)

index index.html; #默認主文件。默認跳轉到index.html頁面

}

}

訪問測試:

[root@localhost yuming]# curl www.lufei.com:2225

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於端口的虛擬主機-lufei-port</h2>

<h3>www.lufei-port.com</h3>

</body>

</html>

5、基於IP的配置:在/etc/nginx/conf.d/下創建一個文件IP.conf ,配置完成後nginx -s reload 重新加載

server {

listen 80; #監聽端口 80

server_name 192.168.1.72; #域名的配置,其書寫格式可以使用正則表達式。

location / {

#root /lufei/root/IP; 根目錄的的絕對路徑配置

root IP; # 相對路徑,相對nginx根目錄。nginx的默認路徑:/usr/share/nginx(yum安裝方式的)

index index.html; #默認主文件。默認跳轉到index.html頁面

}

}

訪問測試:

[root@localhost yuming]# curl 192.168.1.72

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

</head>

<body>

<h2>基於IP的虛擬主機-lufei-IP</h2>

<h3>www.lufei-IP.com</h3>

</body>

</html>


nginx虛擬主機三種模式的簡單實現