Bu örnekte birden fazla site için farklı port kurmayı göreceğiz. Bununla birlike varsayılan /var/www/html root klasörünü /srv/www olarak değiştirdik.


Yapı


srv
.
└── www
├── index.php # Default site root
├── phpinfo.php # Default site root
└── symfony
└── public
├── index.php # Symfony site root
└── phpinfo.php # Symfony site root

Default


Bu port 80'yi kullanan "default" web sitesi.


$ cat /etc/nginx/sites-available/default
server {
listen 80 default_server;

root /srv/www;

server_name default.dev;

# Return 404 for all other files not matching the .php files
location / {
index index.php index.html index.htm;
try_files $uri $uri/ =404;
}

# Pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

error_log /var/log/nginx/default_error.log;
access_log /var/log/nginx/default_access.log;
}

Symfony


Bu port 81'yi kullanan "symfony" web sitesi.


$ cat /etc/nginx/sites-available/symfony
server {
listen 80; # Enables internal access without passing :81
listen 81; # Enables external access with passing :81

server_name symfony.dev;

root /srv/www/symfony/public;

location / {
try_files $uri /index.php$is_args$args;
}

location ~ ^/index\.php(/|$) {
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}

location ~ \.php$ {
return 404;
}

error_log /var/log/nginx/symfony_error.log;
access_log /var/log/nginx/symfony_access.log;
}

Hostlar


$ cat /etc/hosts
127.0.0.1 default.dev
127.0.0.1 symfony.dev

Testler


Sunucunun asıl adresi 192.168.99.30.


Default


Eğer isterseniz localhost, 127.0.0.1 veya default.dev adreslerini kullanabilirsiniz. Bu varsayılan site olduğu için port 80'in kullanımı tüm hostlar için seçeneğe bağlıdır.


# Internal tests
$ curl 127.0.0.1 # serves index.php
$ curl 127.0.0.1/index.php
$ curl 127.0.0.1/phpinfo.php
$ curl 127.0.0.1:80 # serves index.php
$ curl 127.0.0.1:80/index.php
$ curl 127.0.0.1:80/phpinfo.php

# External tests from browsers
http://192.168.99.30/ # serves index.php
http://192.168.99.30/index.php
http://192.168.99.30/phpinfo.php

Symfony


Eğer isterseniz localhost, 127.0.0.1 veya symfony.dev adreslerini kullanabilirsiniz. Bu varsayılan site olmadığı için port 81'in kullanımı sadece symfony.dev hostu için seçeneğe bağlıdır.


# Internal tests
$ curl 127.0.0.1:81 # serves index.php
$ curl 127.0.0.1:81/index.php
$ curl 127.0.0.1:81/phpinfo.php
$ curl symfony.dev # serves index.php
$ curl symfony.dev/index.php
$ curl symfony.dev/phpinfo.php
$ curl symfony.dev:81
$ curl symfony.dev:81/index.php
$ curl symfony.dev:81/phpinfo.php

# External tests from browsers (port is compulsory)
http://192.168.99.30:81/ # serves index.php
http://192.168.99.30:81/index.php
http://192.168.99.30:81/phpinfo.php