Question

nginx: [emerg] "server" directive is not allowed here in /etc/nginx/nginx.conf:84

Hi there, i got error when running

nginx -t

the result is

nginx: [emerg] “server” directive is not allowed here in /etc/nginx/nginx.conf:84 nginx: configuration file /etc/nginx/nginx.conf test failed

im trying to install ssl with nginx, this is my /etc/nginx/.conf file :

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
        worker_connections 768;
        # multi_accept on;
}

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        types_hash_max_size 2048;
        # server_tokens off;

        server_names_hash_bucket_size 64;
        # server_name_in_redirect off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        ##
        # SSL Settings
        ##

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
        ssl_prefer_server_ciphers on;

        ##
        # Logging Settings
        ##

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

        ##
        # Gzip Settings
        ##

        gzip on;

        # gzip_vary on;
        # gzip_proxied any;
        # gzip_comp_level 6;
        # gzip_buffers 16 8k;
        # gzip_http_version 1.1;
        # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

        ##
        # Virtual Host Configs
        ##

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;
}


#mail {
#       # See sample authentication script at:
#       # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
#       # auth_http localhost/auth.php;
#       # pop3_capabilities "TOP" "USER";
#       # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
#       server {
#               listen     localhost:110;
#               protocol   pop3;
#               proxy      on;
#       }
#
#       server {
#               listen     localhost:143;
#               protocol   imap;
#               proxy      on;
#       }
#}

server {

listen 443 ssl;

ssl_certificate /var/www/domain.me/nginx_bundle_85205e575c8.crt;

ssl_certificate_key /root/ssl/domain.key;

root /var/www/domain.me;

server_name domain.me;

}

file .crt and .key is correct, i dont know why im facing this problem. anyone please help me to fix this issue, thank you.


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi there,

You need to remove this part from your config:

server {

listen 443 ssl;

ssl_certificate /var/www/domain.me/nginx_bundle_85205e575c8.crt;

ssl_certificate_key /root/ssl/domain.key;

root /var/www/domain.me;

server_name domain.me;

}

And create a separate Nginx server block in the /etc/nginx/sites-avaialbe directory where you can add that server block definition.

For more information on how the Nginx server blocks work and how to use them, you can follow the steps here:

https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

Hope that this helps!

Best,

Bobby