Как установить ReactJS с прокси Nginx на CentOS 8
На этой странице
- Предпосылки
- Начало работы
- Установите NPM и Node.js.
- Установите Reactjs
- Создание служебного файла Systemd для Reactjs
- Настройка Nginx в качестве обратного прокси-сервера для приложения React
- Настройка брандмауэра
- Доступ к приложению Reactjs
- Заключение
React — это бесплатная библиотека JavaScript с открытым исходным кодом, разработанная Facebook. Он используется для создания веб-интерфейса и компонентов пользовательского интерфейса. Он часто используется для разработки веб-приложений или мобильных приложений. Это позволяет разработчикам создавать многократно используемые компоненты, независимые друг от друга. Его можно использовать с другими библиотеками, включая Axios, JQuery AJAX или встроенный в браузер window.fetch.
В этом посте мы покажем вам, как установить React JS на CentOS 8.
Предпосылки
- Сервер под управлением CentOS 8.
- Действительное доменное имя, указанное с IP-адресом вашего сервера.
- На сервере настроен пароль root.
Начиная
Перед запуском вам необходимо обновить системные пакеты до последней версии. Вы можете обновить их, выполнив следующую команду:
dnf update -y
Как только все пакеты будут обновлены, установите другие необходимые зависимости с помощью следующей команды:
dnf install gcc-c++ make curl -y
Как только вы закончите установку необходимых зависимостей, вы можете перейти к следующему шагу.
Установите NPM и Node.js
Далее вам нужно будет установить Node.js и NPM в вашей системе. NPM, также называемый менеджером пакетов, представляет собой инструмент командной строки, используемый для взаимодействия с пакетами Javascript. По умолчанию последняя версия NPM и Node.js не включена в репозиторий CentOS по умолчанию. Поэтому вам нужно будет добавить исходный репозиторий Node в вашу систему. Вы можете добавить его с помощью следующей команды:
curl -sL https://rpm.nodesource.com/setup_14.x | bash -
После добавления репозитория установите Node.js и NPM с помощью следующей команды:
dnf install nodejs -y
После завершения установки проверьте версию Node.js, выполнив следующую команду:
node -v
Вы должны получить следующий результат:
v14.16.0
Вы также можете проверить версию NPM, выполнив следующую команду:
npm -v
Вы должны получить следующий результат:
6.14.11
На этом этапе в вашей системе установлены NPM и Node.js. Теперь вы можете приступить к установке Reactjs.
Установите Reactjs
Прежде чем начать, вам нужно будет установить приложение create-react-app в вашей системе. Это утилита командной строки, используемая для создания приложения React.
Вы можете установить его с помощью NPM, как показано ниже:
npm install -g create-react-app
После установки проверьте установленную версию приложения create-react-app, используя следующую команду:
create-react-app --version
Вы должны увидеть следующий вывод:
4.0.3
Затем создайте свое первое приложение Reactjs с помощью следующей команды:
create-react-app myapp
Вы должны увидеть следующий вывод:
Success! Created myapp at /root/myapp Inside that directory, you can run several commands: npm start Starts the development server. npm run build Bundles the app into static files for production. npm test Starts the test runner. npm run eject Removes this tool and copies build dependencies, configuration files and scripts into the app directory. If you do this, you can’t go back! We suggest that you begin by typing: cd myapp npm start
Затем измените каталог на myapp и запустите приложение с помощью следующей команды:
cd myapp
npm start
После успешного запуска приложения вы должны получить следующий вывод:
Compiled successfully! You can now view myapp in the browser. http://localhost:3000 Note that the development build is not optimized. To create a production build, use npm run build.
Теперь нажмите CTRL+C, чтобы остановить приложение. Теперь вы можете перейти к следующему шагу.
Создайте служебный файл Systemd для Reactjs
Затем рекомендуется создать файл службы systemd для управления службой Reactjs. Вы можете создать его с помощью следующей команды:
nano /lib/systemd/system/react.service
Добавьте следующие строки:
[Unit] After=network.target [Service] Type=simple User=root WorkingDirectory=/root/myapp ExecStart=/usr/bin/npm start Restart=on-failure [Install] WantedBy=multi-user.target
Сохраните и закройте файл, затем перезагрузите демон systemd с помощью следующей команды:
systemctl daemon-reload
Затем запустите службу Reactjs и включите ее запуск при перезагрузке системы с помощью следующей команды:
systemctl start react
systemctl enable react
Затем проверьте статус приложения Reactjs с помощью следующей команды:
systemctl status react
Вы должны получить следующий результат:
? react.service Loaded: loaded (/usr/lib/systemd/system/react.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-03-23 02:52:32 EDT; 6s ago Main PID: 2191 (node) Tasks: 29 (limit: 12524) Memory: 220.3M CGroup: /system.slice/react.service ??2191 npm ??2202 node /root/myapp/node_modules/.bin/react-scripts start ??2209 /usr/bin/node /root/myapp/node_modules/react-scripts/scripts/start.js Mar 23 02:52:34 centos8 npm[2191]: ? ?wds?: Project is running at http://0.0.0.0:3000/ Mar 23 02:52:34 centos8 npm[2191]: ? ?wds?: webpack output is served from Mar 23 02:52:34 centos8 npm[2191]: ? ?wds?: Content not from webpack is served from /root/myapp/public Mar 23 02:52:34 centos8 npm[2191]: ? ?wds?: 404s will fallback to / Mar 23 02:52:34 centos8 npm[2191]: Starting the development server... Mar 23 02:52:37 centos8 npm[2191]: Compiled successfully! Mar 23 02:52:37 centos8 npm[2191]: You can now view myapp in the browser. Mar 23 02:52:37 centos8 npm[2191]: http://localhost:3000 Mar 23 02:52:37 centos8 npm[2191]: Note that the development build is not optimized. Mar 23 02:52:37 centos8 npm[2191]: To create a production build, use npm run build.
На данный момент Reactjs запущен и прослушивает порт 3000. Вы можете проверить это с помощью следующей команды:
ss -antpl | grep 3000
Вы должны получить следующий результат:
LISTEN 0 128 0.0.0.0:3000 0.0.0.0:* users:(("node",pid=2209,fd=18))
Как только вы закончите, вы можете перейти к следующему шагу.
Настройте Nginx в качестве обратного прокси для приложения React
Затем вам нужно будет настроить Nginx в качестве обратного прокси-сервера для доступа к приложению React через порт 80. Сначала установите пакет Nginx с помощью следующей команды:
dnf install nginx -y
После установки Nginx создайте новый файл конфигурации виртуального хоста Nginx с помощью следующей команды:
nano /etc/nginx/conf.d/react.conf
Добавьте следующие строки:
server { listen 80; server_name react.example.com; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass http://localhost:3000; } }
Сохраните и закройте файл, когда закончите, затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:
nginx -t
Вы должны получить следующий результат:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Наконец, запустите службу Nginx и включите ее запуск при перезагрузке системы, выполнив следующую команду:
systemctl start nginx
systemctl enable nginx
Вы также можете проверить состояние Nginx, выполнив следующую команду:
systemctl status nginx
Вы должны получить статус службы React в следующем выводе:
? nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2021-03-23 02:57:48 EDT; 4s ago Process: 4079 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 4078 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 4076 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 4081 (nginx) Tasks: 2 (limit: 12524) Memory: 4.0M CGroup: /system.slice/nginx.service ??4081 nginx: master process /usr/sbin/nginx ??4082 nginx: worker process Mar 23 02:57:48 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server... Mar 23 02:57:48 centos8 nginx[4078]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok Mar 23 02:57:48 centos8 nginx[4078]: nginx: configuration file /etc/nginx/nginx.conf test is successful Mar 23 02:57:48 centos8 systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument Mar 23 02:57:48 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.
Как только вы закончите, вы можете перейти к следующему шагу.
Настроить брандмауэр
Затем вам нужно будет разрешить порты 80 и 443 через брандмауэр. Вы можете разрешить их, выполнив следующую команду:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
Затем перезагрузите брандмауэр, чтобы применить изменения конфигурации:
firewall-cmd --reload
Как только вы закончите, вы можете перейти к следующему шагу.
Доступ к приложению Reactjs
Теперь откройте веб-браузер и войдите в свое приложение Reactjs, используя URL-адрес http://react.example.com. Вы должны увидеть страницу Reactjs на следующем экране:
Заключение
Поздравляем! вы успешно установили Reactjs в CentOS 8. Вы также настроили Nginx в качестве обратного прокси-сервера для приложения Reactjs. Теперь вы можете приступить к разработке своего приложения Reactjs.