我在 docker 中配置了 Nginx,将错误 500 重定向到自定义页面 (500.php),但此错误没有被重定向到我的自定义页面。您能帮忙吗?
以下是我在 .docker/conf/nginx 中的配置
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
root /var/www/html/;
location / {
error_page 500 = /500.php;
}
}
Run Code Online (Sandbox Code Playgroud) 我从 GitHub 上获取了我的大学项目的项目,但我对这项技术一无所知。该项目旨在创建在线教育平台。那里很少有错误,例如.env项目中没有文件来连接到服务器。我已经解决了这个问题。我从官方网站下载了 MongoDB,并启动了服务器,127.0.0.1:27017创建了名为 的新数据库virtual_class,并在其中创建了所有集合(来自他的 YouTube 视频 | 链接:https://www.youtube.com/watch ?v=9P7LzhL5i3w | GitHub 链接:https://github.com/MahbubulHasanSakib/virtual_classroom_deploy)。我将我的.env文件配置为MONGOURI = mongodb://127.0.0.1:27017/virtual_class. 现在,当我运行程序时,数据库已成功连接,但是当我在浏览器中打开 URL 时,i.e., 127.0.0.1:27017它说It looks like you are trying to access MongoDB over HTTP on the native driver port.我已经搜索了许多线程,但它们提供的只是仅适用于 Linux 平台而不适用于 Windows 的解决方案。
我尝试通过配置nginx.conf文件将这个项目与 nginx 连接起来,如如何在 Nginx 反向代理后面设置 MongoDB以下是我的配置方式
events{
...
}
stream {
server {
listen 27017;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass stream_mongo_backend; …Run Code Online (Sandbox Code Playgroud) 我一直在研究这个问题,由于 CORS 限制,特定字体文件未在远程站点上呈现。
到目前为止,我已经能够确定对该 url 的请求正在使用 access-control-allow-origin 进行响应,但 nginx 在远程发出时拒绝对该字体的请求。
我正在使用 laravel 和 spatie 的 laravel-cors 插件,但我认为这不会返回未从 laravel 路由渲染的样式表或字体的标头信息。
有谁知道为什么会发生这种情况?
我的错误
Access to font at 'https://example.com/css/widget-icons/icomoon.ttf?wiodlm' from origin 'http://www.second-example.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
通过curl检索标头(似乎允许curl请求)
curl -I https://example.com/css/widget-icons/icomoon.ttf?wiodlm
HTTP/2 200
date: Sun, 13 Jan 2019 16:57:34 GMT
content-type: application/x-font-ttf
content-length: 1316
set-cookie: AWSALB=r3yRudj6XwTlfaFzEdtxrecHzLLplOKlpRMbKuqL8InwUQYylNVFaZtmGHK2wQDgjvaXsBtRVcTCyjWidjTFUFmoDzKLBLH0gL6qarns38Qn4FuDNCZogawHtOjD; Expires=Sun, 20 Jan 2019 16:57:34 GMT; Path=/
server: nginx/1.14.1
last-modified: Tue, 25 Dec 2018 05:42:49 GMT
etag: …Run Code Online (Sandbox Code Playgroud) 我有一个用python和flask框架编写的电子商务项目,我在会话中保存购物车信息,当我尝试将产品添加到会话时,nginx给出了这个错误:
从上游读取响应标头时,上游发送了太大的标头,客户端:xx.xxx.xx.xxx,服务器:mysite.com,请求:“POST /add_to_cart HTTP/1.1”,上游:“uwsgi://unix:/path /uwsgi.sock:”,主机:“mysite.com”
当我在会话中有大量信息时会发生这种情况,
我尝试添加fastcgi和proxy_buffer参数,但仍然不起作用,这是我的 nginx conf 文件:
server {
listen 443 ssl;
server_name mysite.com;
ssl_certificate /path/nginx.pem;
ssl_certificate_key /path/nginx.key;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
access_log /path/access.log main;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffering on;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
location /static/ {
alias /path/web/static/;
access_log off;
index index.html index.htm;
}
location / {
try_files $uri @uwsgi;
root /path/www/;
index index.html index.htm;
}
location @uwsgi {
include uwsgi_params;
uwsgi_pass unix:/path/web/uwsgi.sock;
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试部署nginxdocker 映像。我需要创建一个端点以供我的就绪探针使用,这应该是一个/healthz返回 200 / OK的简单端点。
我已经尝试了下面的方法,但是这会导致浏览器下载包含响应的文件,而不是将其呈现为 doc。
server {
listen 80;
server_name localhost;
location /healthz {
return 200 "OK\n";
}
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri /index.html;
}
# redirect server error pages
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Run Code Online (Sandbox Code Playgroud) 我在工作中维护了几个应用程序,并注意到一些员工能够使用这些应用程序的非安全路径,例如:example.com, www.example.com。使用这些路径中的任何一个都会将它们定向到该HTTP路径而不是,除非它们在 url 中HTTPS指定。HTTPS我们目前使用nginx作为我们的网关,但我没有对我们的进行初始配置nginx gateway,所以我真的不知道什么有效,什么无效。
这是我们的 nginx.conf 文件的片段
server{
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
location / {
proxy_pass http://localhost:3000;
}
}
# Settings for a TLS enabled server.
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name localhost;
ssl_certificate "/etc/nginx/ssl/domain-crt.txt";
ssl_certificate_key "/etc/nginx/ssl/domain-key.txt";
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
## More configuration below this...
}
Run Code Online (Sandbox Code Playgroud)
我尝试在 Listen 80 部分中进行返回,但这不起作用:
server{
listen 80 default_server; …Run Code Online (Sandbox Code Playgroud) 我已在服务器中部署了我的反应应用程序Vultr并安装nginx在服务器中,并通过运行以下命令配置了以下设置。
$ sudo nano /etc/nginx/sites-available/default
server {
listen 80;
server_name somedomain-test.com www.somedomain-test.com;
root /var/www/somedomain-test.com/build;
index index.html;
}
Run Code Online (Sandbox Code Playgroud)
我确实运行npm run build并将构建文件夹复制到以下目标文件夹中/var/www/automateandmore.com/build
然后运行以下命令:
$ sudo nginx -t
$ sudo systemctl restart nginx
Run Code Online (Sandbox Code Playgroud)
我能够看到前端。server.js现在我已经从文件夹位置启动了src/,但我仍然可以看到它正在调用localhost:8000/service/listofblogs:
我该如何解决这个问题,有人可以建议吗?
这是我的 package.json 设置
{
"name": "myblogs",
"version": "0.1.0",
"private": true,
"dependencies": {
.....
},
"proxy": "http://localhost:8000",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
....
}
}
Run Code Online (Sandbox Code Playgroud)
.env 文件 …