У меня есть 1 поддомен в дополнение к основному сайту, все они работают на nginx + fastcgi-mono-server4.
ПРОБЛЕМА: Я должен заставить субдомен использовать другой порт (порт 81) для всех файлов .conf / .webapp, иначе, когда я захожу subdomain.example.com, он всегда отображает контент для example.com вместо. Кажется, проблема в моем файле .webapp. Отображение правильного веб-сайта частично работает, если я "взламываю" его и использую порт 81 для поддомена: https://stackoverflow.com/questions/28872585/how-to-handle-multiple-websites-through-fastcgi-server
Ниже приведены файлы .conf nginx для каждого веб-сайта:
##### SUBDOMAIN #####
server {
server_name subdomain.example.com;
root /subdomain;
listen 81;
location / {
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /opt/nginx/conf/fastcgi_params;
}
##### MAINWEBSITE #####
server {
server_name example.com;
root /mainwebsite;
listen 80;
location / {
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /opt/nginx/conf/fastcgi_params;
}
Далее идут файлы .webapp, необходимые для fastcgi-mono-server4 (ОБА находятся в той же папке / nginx / webapps):
##### SUBDOMAIN #####
<apps>
<web-application>
<name>subdomain</name>
<vhost>*</vhost>
<vport>81</vport>
<vpath>/</vpath>
<path>/subdomain</path>
</web-application>
</apps>
##### MAINWEBSITE #####
<apps>
<web-application>
<name>subdomain</name>
<vhost>*</vhost>
<vport>80</vport>
<vpath>/</vpath>
<path>/mainwebsite</path>
</web-application>
</apps>
Чтобы запустить процесс fastcgi, я запускаю следующую команду:
fastcgi-mono-server4.exe --appconfigdir /nginx/webapps /socket=tcp:127.0.0.1:9000 /logfile=/opt/nginx/logs/fastcgi.log &
Думал, что обновлю свои выводы и опубликую то, чем я закончил. Сервис fastcgi-mono-server4
не может выполнять интеллектуальную маршрутизацию, как nginx, поэтому мы либо должны использовать <vport>
или <vpath>
в .webapp
файл для перенаправления. Я исключил <vport> (:81)
потому что это выглядит некрасиво, и необходимость открывать порт 81 в брандмауэре не подходит.
Итак, меньшее из двух зол и решение, которое я в итоге использовал, - это добавить небольшое дополнение к обоим nginx.conf
и .webapp
файлы (добавление пути "/ m" к файлам)
Конечный URL-адрес будет: subdomain.example.com/m
##### SUBDOMAIN #####
server {
server_name subdomain.example.com;
listen 80;
//Addition of "/m" for location
location /m {
root /mainwebsite;
fastcgi_index Default.aspx;
fastcgi_pass 127.0.0.1:9000;
include /opt/nginx/conf/fastcgi_params;
}
Содержимое файла .webapp:
##### SUBDOMAIN #####
<apps>
<web-application>
<name>subdomain</name>
<vhost>*</vhost>
<vport>80</vport>
<vpath>/m</vpath> //Addition of "/m" for <vpath>
<path>/subdomain</path>
</web-application>
</apps>