Эта статья в основном посвящена междоменной настройке, и если большие ребята могут ее настроить, вам не нужно ее читать
Кратко опишите обратный прокси и прямой прокси
Обратный прокси:
Прокси вперед:
В качестве примера обратного прокси,я (клиент)Позволятьдруг(играет роль)Иди, купи мне бутылку воды, все равно не сказал, где ее купить.друг(играет роль)выкупил, зая (клиент)Говорящий,я (клиент)незаметныйсупермаркет (сервер)Существование этого обратного прокси.
В двух словах, серверные прокси называются обратными прокси, а клиентские прокси называются прямыми прокси.
Как настроен nginx?
скачать nginx
http://nginx.org/en/download.html
Каталог файлов
запустить службу
В этом каталоге откройте командную строку cmd, введите nginx, также можно дважды щелкнуть nginx.exe, но это не интуитивно, доступ к порту Localhost:80, вы можете увидеть интерфейс ниже,
Если вам это не нужно, вы можете изменить его самостоятельно и войти в каталог файла конфигурации.
Оптимизировать код конфигурации
Файл после удаления комментариев и посторонний код выглядит так:
- Поля root и index в первой локации тоже можно удалить, в конце концов, и у нашего междоменного отношения нет ~
- Страница error_page в красном поле и место под ним также могут быть удалены по той же причине, что и выше.
запустить службу
Сначала запустите службу узла:
const http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {
'Content-Type': 'application/json;charset=utf-8'
});
// 这个例子中要回传的data
let data = {
name: 'nginx proxy'
};
data = JSON.stringify(data);
response.end(data);
}).listen(8887);
console.log('server1 is listen at 8887 port');
Демонстрация ошибок
После запуска службы мы обращаемся к ней напрямую, чтобы смоделировать междоменный сценарий:
<body>
<h1>nginx反向代理</h1>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://localhost:8887');
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
console.log(xhr)
}
}
}
</script>
</body>
Конечно же, сообщалось о междоменной ошибке:
начать настройку
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
}
}
}
Мы добавляем два поля к местоположению:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8887;
add_header Access-Control-Allow-Origin *;
}
}
}
- proxy_pass, представляющий порт сервера для проксирования
- add_header, друзья, знакомые с CORS, должны знать, это заголовок ответа конфигурации
- listen, который представляет прослушивающий порт
Теперь измените код запроса:
<body>
<h1>nginx反向代理</h1>
<script>
var xhr = new XMLHttpRequest();
// 在这里把原来的localhost:8887修改成localhost:80
xhr.open('GET', 'http://localhost:80');
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
console.log(xhr)
}
}
}
</script>
</body>
Перезапустите службу после модификации.Здесь есть два метода, но оба должны открыть новую командную строку cmd в каталоге файлов.
- Перезагрузитесь напрямую. войти
nginx -s reload - Выключите, а затем включите. войти
nginx -s stop nginx
Если вы хотите отправить запрос в папку api на сервере, вам нужно только изменить это поле в файле конфигурации.
location /api {
// 你的代码,如
// proxy_pass 你的路径
// add_header Access-Control-Allow-Origin *;}