У меня есть рабочий сервер, и я внес в проект важное обновление, поэтому я решил развернуть новые обновления на отдельном сервере, чтобы сначала протестировать их на другом порту на том же производственном сервере, но это не сработало ..
Я попытался установить порт 9090 для моего тестового сервера, но затем я получаю:
http://example.com:9090/
This webpage is not available
Есть идеи?
Вот мои блоки:
тестовый сервер:
server {
listen 9090;
server_name tree;
root /home/forge/tree/public;
# FORGE SSL (DO NOT REMOVE!)
# ssl_certificate;
# ssl_certificate_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/tree-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
производственный сервер:
server {
listen 80 default_server;
server_name default;
root /home/forge/default/public;
# FORGE SSL (DO NOT REMOVE!)
# ssl_certificate;
# ssl_certificate_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/default-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
ошибка:
2015/11/19 17:42:16 [error] 2878#0: *60 FastCGI sent in stderr: "PHP message: PHP Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0" while reading response header from upstream, client: 46.185.165.167, server: default, request: "POST /api/get-country-tree?country_id=-1&level=3 HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "kalimon.info", referrer: "http://kalimon.info/new_tree"
] edit
$ netstat -antp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 18539/nginx: worker
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN 18539/nginx: worker
$ wget localhost:9090
--2015-11-22 11:26:57-- http://localhost:9090/
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:9090... connected.
HTTP request sent, awaiting response... 403 Forbidden
2015-11-22 11:26:57 ERROR 403: Forbidden.
edit 2
Я исправил ошибку разрешения:
$ chmod -R 775 ~/tree
Теперь я получаю ответ ... 200:
$ wget 0.0.0.0:9090
--2015-11-22 12:17:47-- http://0.0.0.0:9090/
Connecting to 0.0.0.0:9090... connected.
HTTP request sent, awaiting response... 200 OK
, но в браузере я все еще получаю ошибку ERR_CONNECTION_REFUSED
edit 3
Хорошо, я приближаюсь к ответу:
$ nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-22 13:27 AST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00040s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
9090/tcp open zeus-admin
3306/tcp open mysql
5432/tcp open postgresql
Итак, порт 9090 не использует службу http, как порт 80, это проблема? как решить эту проблему?
Я попробовал порт 96, но его нет в списке при использовании nmap localhost, и я получил ERR_CONNECTION_TIMED_OUT
Итак, / web / admin Предположим, что домен моего веб-сайта http://www.domain.com/, и я хотел бы использовать порт 8080 для страницы администратора ....
Я создал два каталога для хранения веб-сайта на веб-сервер
/web
/web/admin
Предположим, что домен моего веб-сайта http://www.domain.com/
, и я хотел бы использовать порт 8080 для страницы администратора.
Как я могу ограничить URL http://www.domain.com:8080
указывает на / web / admin
и http://www.domain.com:80
неподвижную точку на / web
?
Я знаю, что большинство веб-панелей управления делают это. Может ли кто-нибудь посоветовать мне, как это сделать?
Вот моя среда: Linux CentOS 7.0, Apache / 2.4. 6
Если вы хотите сделать это вручную, отредактируйте файл nano /etc/apache2/sites-enabled/000-default.conf
и измените конфигурацию виртуального хоста:
<VirtualHost *:80>
# [ Server Domain ]
ServerName www.domain.com
# [ Server Root ]
DocumentRoot /web/
# [ Prevent direct access to admin]
Redirect 301 /admin/ http://www.domain.com:8080
</VirtualHost >
Listen 8080
<VirtualHost *:8080>
# [ Server Domain ]
ServerName www.domain.com
# [ Server Root ]
DocumentRoot /web/admin/
</VirtualHost >
By способ sites-enabled / 000-default.conf
- это символическая ссылка на sites-available / 000-default.conf
. Вы должны установить свой веб-сайт и сайт администратора в двух отдельных папках. иметь два чистых виртуальных хоста без защиты прямого доступа с помощью перенаправления
. Вы можете установить порт прослушивания в /etc/apache2/ports.conf вместо конфигурации вашего веб-сайта, если хотите