我有nginx并运行Ruby/Sinatra应用程序,一切都很好.但是,我现在正尝试从同一台服务器运行第二个应用程序,我注意到一些奇怪的东西.首先,这是我的nginx.conf:
pid /tmp/nginx.pid;
error_log /tmp/nginx.error.log;
events {
worker_connections 1024;
accept_mutex off;
}
http {
default_type application/octet-stream;
access_log /tmp/nginx.access.log combined;
sendfile on;
tcp_nopush on;
tcp_nodelay off;
gzip on;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 500;
gzip_disable "MSIE [1-6]\.";
gzip_types text/plain text/xml text/css
text/comma-separated-values
text/javascript application/x-javascript
application/atom+xml;
upstream app {
server unix:/var/www/app/tmp/sockets/unicorn.sock fail_timeout=0;
}
server {
listen 80;
client_max_body_size 4G;
server_name FAKE.COM;
keepalive_timeout 5;
root /var/www/app/public;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://app; …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 DRF(Django 项目),其中我的后端 django Rest api 托管在服务器上,我的 ReactJS 前端也托管在同一台服务器上。我已确保遵循我在 ff 文档中读到的所有所需步骤:
我添加了 corsheaders INSTALLED_APPS ,并且 settings.py 中的中间件是:
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
Run Code Online (Sandbox Code Playgroud)
我在settings.py中的CORS设置是:
CORS_ALLOW_ALL_ORIGINS=False
CSRF_TRUSTED_ORIGINS = [
"https://samplefrontend.tech",
]
CORS_ALLOW_METHODS = [
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
]
CORS_ALLOW_HEADERS = [
'accept',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
]
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用 Postman 从本地 PC(而不是前端服务器)执行一些请求(例如获取令牌)时,其余 api 返回刷新和访问令牌。对于其他 HTTP 请求也是如此,我可以使用 postman 自由地执行这些请求并获得响应。
我需要的是只接受来自前端应用程序(reactjs)的请求。谁可以帮我这个事?