@LAisen

Низкая скорость соединения с web сервером, в чем причина?

Добрый день!
На работе поставили простенький сервер на Apache2 + PHP + MySQL на Windows (потому что никто среди нас в linux не умеет) с белым IP. Задача сервера принимать файлы и комментарии к нему, и записывать ссылку на файл и комментарий в БД, которая в свою очередь выводится в таблицу на фронте (wordpress как оболочка :).
Когда тестировал на локальной машине файлы загружались моментально. После того как поставил сервер на другую машину (с белым IP), на него файлы грузятся со скоростью 1Мбит/сек, когда как от провайдера скорость 100 Мбит. Через Speedtest проверял, скорость заявленная что на клиентской машине, что на сервере.
Никак не могу понять, где узкое место, которое режет скорость до 1Мбит/сек.

Да, и еще сервер конечно не супер круто настроен по безопасности т.к. я в этом особо ничего и не понимаю, Гугл в помощь, а вот с этой проблемой Гугл не помог.

Файлы с комментариями загружаются через форму на фронте, передаются через Ajax скрипту php, который в свою очередь с полученными данными делает всякое и кладёт файлы в папку, а данные с ссылкой в БД.
Код формы
<!DOCTYPE html>
<html>
	<head>      
	  <meta charset="UTF-8">
          <title>test</title>
		  <script type="text/javascript" src="/js/jquery.js"></script>
		  <script type="text/javascript" src="/js/form2.js"></script>
	</head>
<body>
          <form id="otpravka" action="/insert.php" enctype="multipart/form-data" method="post">
            <p>
              <label for="Sub_division">Подразделение:</label>
              <select type="text" name="Subdivision" id="Sub_division" required>
                	<option value="">Выберите цех</option>
			<option value="Цех1">Цех 2</option>
                	<option value="Цех2">Цех 2</option>
              </select>
            </p>
            <p>
              <label for="Name_TU">Наименование:</label>
              <input type="text" name="NameTU" id="Name_TU">
            </p>
            <p>
              <label for="Signing_Date">Дата подписания:</label>
              <input type="date" name="SigningDate" id="Signing_Date">
            </p>
            <p>
              <label for="Validity_Date">Срок действия до:</label>
              <input type="date" name="Validity" id="Validity_Date">
            </p>
            <p>
             <label for="File_URL">Выбрать файл приказа:</label>
				<input type="file" name="file" id="File_URL" required>
      	    </p>
            <input type="submit" value="Отправить">
          <input type="hidden" value="" name="recaptchaResponse"></form>
</body>
</html>


Код JS
jQuery(document).ready(function() {
    jQuery('#otpravka').submit(function(event){
			event.preventDefault();
			let fd = new FormData(this);
				jQuery.ajax({
				url: jQuery(this).attr('action'),
				type: jQuery(this).attr('method'),
				data: fd,
				cache: false,
				contentType: false,
				processData: false,
				success: function(data){
				console.log('succes');
				alert('Данные отправлены');
				console.log(data);
				jQuery('#otpravka')[0].reset();
				},
			});
 	});
});


PHP
<?php
 $files_dir = 'files/';
if(isset($_FILES["file"])){ 
    if(is_uploaded_file($_FILES["file"]["tmp_name"])){
        move_uploaded_file($_FILES["file"]["tmp_name"], $files_dir.$_FILES["file"]["name"]);
    // Тут выводим ссылку
$linkDL = $files_dir.$_FILES["file"]["name"];}}
/* Попытка подключения к серверу MySQL. Предполагая, что вы используете MySQL
 сервер с настройкой по умолчанию (пользователь root без пароля) */
$link = mysqli_connect("localhost", "root", "", "wordpress");
 
// Проверьте подключение
if($link === false){
    die("ERROR: Нет подключения. " . mysqli_connect_error());
}
 
//  экранирует специальные символы в строке
$Subdivision = mysqli_real_escape_string($link, $_REQUEST['Subdivision']);
$NameTU = mysqli_real_escape_string($link, $_REQUEST['NameTU']);
$SigningDate = mysqli_real_escape_string($link, $_REQUEST['SigningDate']);
$Validity = mysqli_real_escape_string($link, $_REQUEST['Validity']);
$linkDownload = $linkDL;
 
// Попытка выполнения запроса вставки
$sql = "INSERT INTO wp_tceha (Subdivision, NameTU, SigningDate, Validity, FileURL) VALUES ('$Subdivision',  '$NameTU', '$SigningDate', '$Validity', '$linkDownload')";
if(mysqli_query($link, $sql)){
    echo "Записи успешно добавлены.";
} else{
    echo "ERROR: Не удалось выполнить $sql. " . mysqli_error($link);
}
 
// Закрыть соединение
mysqli_close($link);
?>


И заранее спасибо)
  • Вопрос задан
  • 280 просмотров
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
потому что никто среди нас в linux не умеет

там особо нечего уметь - у большинства дистрибутивов простая установка, инструкция по установке http сервера c php и mysql занимает от силы пол страницы (настройки примерно те же) + куча готовых сборок.
https://digitalocean.com/community/tutorials/how-t...
на него файлы грузятся со скоростью 1Мбит/сек, когда как от провайдера скорость 100 Мбит.

100 Мбит. это скорее всего скорость сети, а не интернета. Обычно у провайдеров скорость отдачи вразы ниже скорости на загрузку.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы