NGINX 配置失败

NGINX 配置失败

我试图删除无用的重定向,并在没有备份的情况下更改了 nginx 配置...我只是删除了一行,然后放回去,但 nginx 没有启动。现在我尝试了在网上找到的一些“默认”,但没有任何效果。需要帮助:< 以下是配置文件

sites-enabled -> mywebsite.com.conf <- 在这里我做了更改,我知道它应该看起来不同,但我不知道它应该是什么样子..

server {
       listen 80;
}

server {
      listen 443;
}

站点->已启用 mywebsite.com

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name mywebsite.com www.mywebsite.com;
        rewrite ^ https://mywebsite.com$request_uri? permanent;
client_max_body_size 100M;
}

server {
client_max_body_size 100M;
    listen 443 ssl;
    server_name mywebsite.com;
 ssl_certificate /etc/mywebsite.com.crt;
  ssl_certificate_key /etc/mywebsite.com.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

   access_log /var/log/nginx/odoo.access.log;
   error_log /var/log/nginx/odoo.error.log;




#ssl weryfikacja plik
location ^~ /.well-known/ {
 default_type "text/plain";
 alias /var/www/acme-challenge/;
  autoindex on;
}


location / {

      proxy_set_header        Host $host;
        proxy_set_header        X-Forwarder-Server $host;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
     # proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_set_header        X-forwarder-Host $host;
      # Fix the “It appears that your reverse proxy set up is broken“ error.
      proxy_pass          https://localhost:8069;
     # proxy_read_timeout  90;

#      proxy_redirect      http://localhost:8069 https://mywebsite.com;
}


  }

使用此配置,我得到 502 bad gateway

我还添加了重定向到 IPTABLES iptables -D PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 8069 iptables -D PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-port 8069 网站是在 odoo 上建立的,运行在端口 8069 上

当有人尝试访问网站时,odoo 会报告错误?werkzeug: 127.0.0.1 - - [09/Oct/2019 10:30:11] 代码 400,消息错误的 HTTP/0.9 请求类型 ('\x16\x03\x01\x00½\x01\x00\x00¹\x03\x03\´<ø\x80bè¸àP2\x07¢ÑP\x88¶ãc+\x14ôC\x89®\x92½&W~g') - - -

答案1

  1. 您忘记了ssllisten 443指令上的标志。

  2. 您正在尝试将 TLS 端口 (443) 和非 TLS 端口 (80) 重定向到同一服务器的同一端口。您的 Web 应用 (werkzeug) 仅期望端口 8069 上的纯 HTTP 连接,因此它无法识别此端口上的 TLS 握手。

  3. iptables 重定向规则完全绕过Nginx 反向代理;它们将所有数据包直接转发给应用程序。

答案2

  1. 你的意思是
server {
      listen 443 ssl;
}

2.

 rewrite ^ https://mywebsite.com$request_uri? permanent;
change to http?
  1. 如果我做了这些改变但没有做 IPTABLES 那么我就会得到 An error occurred during a connection to water-display.com. SSL received a record that exceeded the maximum permissible length. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

使用 iptables 时会收到 502

相关内容