nginxがリクエストを受信すると、構成内のサービスモジュールと一致します。
一致する方法は、server_nameに対応し、その構成をリッスンするために、リクエストに含まれるホストとポートに依存することです。
IPとドメイン名のバインドが行われている場合、IPとドメイン名の両方が等しい
たとえば、次のとおりです。
server {
listen 8080;
server_name www.abc.com;
access_log /opt/htdocs/logs/abc.log combined;
index index.html index.htm index.php;
root /opt/htdocs/abc;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}
たとえば、サーバーのIPアドレスは1.2.3.4です。ドメイン名www.abc.comとipがバインドされている場合、上記の構成では、server_nameがwww.abc.comでも1.2.3.4でも、 1.2.3.4:8080またはwww.abc.com:8080から当社のウェブサイトにアクセスしてください
1.ポート80は、サーバーがWebサイトアクセスサービスを提供するデフォルトのポートです。www.9410.com.cnなどのWebサイトにアクセスする場合、実際の完全なアドレスはhttp://www.9410.com.cn:80で、省略されます現時点では、www.9410.com.cnですが、ドメイン名解決を行う際に、ポートの問題を考慮する必要はありません。
2.デフォルトのポートが使用されていない場合、たとえば、サーバーがWebページアクセスサービスを提供しているが、ポートが81である場合、それを解決するには次の2つの方法しか使用できません。
1. ドメイン名ポインティング機能を引き続き使用して、ドメイン名を直接ipに解決します。つまり、http://www.abc.com:81からアクセスされるドメイン名の後に「:ポート番号」を追加します。
2.代わりにドメイン名のURL転送機能を使用します。IPが123.123.123.123でポートが81の場合、www.abc.comをhttp://123.123.123.123:81に転送するように設定します。
2番目の方法のURL転送機能を使用したくない場合、およびドメイン名にポートを設定したくない場合は、次の方法を使用できます。
server {
listen 80;
server_name www.abc.com;
access_log /opt/htdocs/logs/abc.log combined;
index index.html index.htm index.php;
root /opt/htdocs/abc;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}
server {
listen 1002;
server_name 1.2.3.4;
access_log /opt/htdocs/logs/abc.log combined;
index index.html index.htm index.php;
root /opt/htdocs/abc;
if ( $query_string ~* ".*[\;'\<\>].*" ){
return 404;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ .*\.(php|php5)?$ {
#fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 7d;
}
}