Код: Выделить всё
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
# Example of reverse proxy, separate front end and back end
location /authApi {
resolver 127.0.0.11 valid=30s; # Docker DNS
proxy_pass http://auth:8080/authApi;
proxy_redirect default;
}
location /accountApi {
resolver 127.0.0.11 valid=30s; # Docker DNS
proxy_pass http://account:8081/accountApi;
proxy_redirect default;
}
location /taskApi {
resolver 127.0.0.11 valid=30s; # Docker DNS
proxy_pass http://task:8082/taskApi;
proxy_redirect default;
}
location / {
resolver 127.0.0.11 valid=30s;
proxy_pass http://frontend:3000;
proxy_redirect default;
}
}
}
Код: Выделить всё
@Bean
@SneakyThrows
public SecurityFilterChain securityFilterChain(HttpSecurity http) {
return http.cors(Customizer.withDefaults()).csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(request -> request
.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.anyRequest().permitAll()
)
.build();
}
Страница входа в React
Код: Выделить всё
const Login = (props) => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [errorMessage, setErrorMessage] = useState('');
const [showErrorPopup, setShowErrorPopup] = useState(false);
const navigate = useNavigate();
const handleSubmit = async (event) => {
event.preventDefault();
setEmail('')
setPassword('')
try {
const response = await axios.post(props.url + "/authApi/login",
{ email: email, password: password })
Cookies.set('token', response.data.message)
navigate('/')
} catch (error) {
setShowErrorPopup(true)
console.log(error)
console.log(error.response)
setErrorMessage(error.response.data.message)
}
};
const handleRegisterRedirect = () => {
navigate('/registration');
};
const closeErrorPopup = () => {
setShowErrorPopup(false);
};
return (
Login
LOGIN
Email
setEmail(e.target.value)}
required
/>
Password
setPassword(e.target.value)}
required
/>
Login
Don't have an account yet? [url=/registration]Register[/url]
{showErrorPopup && (
{errorMessage}
Close
)}
);
};
export default Login;
Код: Выделить всё
function App() {
// const authService = 'http://localhost:8080'
// const accountService = 'http://localhost:8081'
// const taskService = 'http://localhost:8082'
const url = 'http://localhost:80'
return (
);
}
export default App;
Код: Выделить всё
http://auth:8080/authApi/login

Можно ли исправить эту ошибку, не меняя сервер на https? Я попробовал добавить заголовки Access-Control-Allow-Origin *, Access-Control-Allow-Private-Network: true в моем nginx, это не работает. Еще я знаю, что можно отключить флаг в Google, но это решает проблему только локально. Возможно, можно как-то настроить nginx, чтобы он отправлял запросы на сервер не с ip 176.109.106.164, а с ip 127.0.0.1, например?
Подробнее здесь: https://stackoverflow.com/questions/785 ... -private-a