NGINX – “服务器”指令在这里是不允许的

我试图重新configuration我的NGINX安装代理到本地鬼安装。

除此之外,我添加SSL(letsencrypt),但我不断收到错误。

我得到的错误是 –

这是我的configuration

 server { listen 80; server_name domainnamehere.com; return 301 https://$server_name$request_uri; } server { listen 443; server_name www.nonstopdev.com; access_log /var/log/nginx/domainnamehere.com.access.log; error_log /var/log/nginx/domainnamehere.com.error.log; ssl on; ssl_certificate /etc/letsencrypt/live/domainnamehere.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domainnamehere.com/privkey.pem; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } } 

以下configuration工作正常,没有任何问题 –

 server { listen 80; server_name mydomainname.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:2368; } } 

它看起来像一个不完整的配置。

正常的NGINX配置以nginx.conf文件(即/etc/nginx/nginx.conf)开头,后者声明用户,进程ID和其他必要的东西,然后是http {}分支。 通常保存在conf.d目录中的服务器{}分支,或者通常包含在nginx.conf中http {}分支末尾的那些分支。 所以即使他们以服务器作为出站节点,也不是真正的外层节点。 它在http节点内。

如果你直接加载一个配置文件,可能确定它包含一个完整的nginx配置,包括这些缺少的部分?

我能够使用以下配置文件解决问题。 看起来不错,Ghost和HTTPS重定向列出了一些错误。

 server { listen 443; ssl on; server_name mydomain.com www.mydomain.com; ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_intercept_errors on; proxy_pass http://127.0.0.1:2368; } } server { listen 80; server_name mydomain.com; return 301 https://$host$request_uri; }