Использовать сервер веб-пакетов с nginx - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь включить HMR на моем переднем конце реакции, который также использует nginx / php-fpm в качестве внутреннего.Я прочитал несколько статей и вопросов о stackoverflow, но все еще не могу заставить его работать.

Итак, прежде всего, если я правильно понимаю, это должно работать так:

1.У меня естьКонтейнер my docker nginx (80) сопоставлен с портом 8080

Я делаю запрос к localhost: 8080, который затем передает его в Docker-контейнер в nginx, который прослушивает порт 80. После этого у меня должно быть два варианта, если я хочу сделать запрос к бэкэнду, которыйэто просто API, тогда все с / api в URI будет перенаправлено на php-fpm, в противном случае все остальное будет перенаправлено на webpack-dev-server.

В настоящее время мой nginx настроен так:

upstream backend {
        server app:9000;
}
server {
        root /var/www/emailApp/public;
        location / {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass http://localhost:8080;
        }

        location ~ ^\/api\/.+$ {
                fastcgi_pass backend;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                include fastcgi_params;
                fastcgi_param SCRIPT_FILENAME $request_filename;
                fastcgi_param DOCUMENT_ROOT $realpath_root;
        }
}

Я не уверен, что это работает правильно, но если он совпадает с чем-то с '/', он должен попытаться передать его в порт 8080, если он совпадает с чем-то с / api /, тогда он должен передать этоphp backend.

Вот мой конфиг веб-пакета

    entry: './assets/index.jsx',
    output: {
        filename: 'main.js',
        publicPath: "http://localhost:8080/public/"
    },

    devServer: {
        contentBase: path.join(__dirname, 'public'),
        host: '0.0.0.0',
        compress: true,
        port: 8080
    },

Я делал это в основном из уроков, но не думаю, что понимаю это.потому что прямо сейчас я вызываю index.php, который вызывает контроллер, который возвращает шаблон, который содержит ссылку на main.js, который находится в общей папке.Но событие после прочтения документации я совсем не понимаю.Часть devServer может быть, она определяет сервер, который будет прослушивать 0.0.0.0:8080, но если я не ошибаюсь, мне нужно изменить структуру моего проекта, чтобы у меня был файл index.html, который будет включать мой файл js в общую папкуне так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...