Как Вы изменяете заголовок сервера, возвращенный nginx?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
132
задан Digital site 16 March 2014 в 05:03
поделиться

4 ответа

Как Apache, это - быстрое редактирование к источнику, и перекомпилировать. От Calomel.org :

Сервер: строка является заголовком, который передают обратно клиенту, чтобы сказать им, какой http сервер Вы выполняете и возможно что версия. Эта строка используется местами как Alexia и Netcraft для собирания статистических данных о том, сколько и того, какой веб-сервер жив в Интернете. Для поддержки автора и статистики для Nginx, мы рекомендуем сохранить эту строку, как. Но, для безопасности Вы не можете хотеть, чтобы люди знали то, что Вы выполняете, и можно изменить это в исходном коде. Отредактируйте исходный файл src/http/ngx_http_header_filter_module.c во взгляде на строки 48 и 49. Можно поменять Струну к чему-либо, что Вы хотите.

## vi src/http/ngx_http_header_filter_module.c (lines 48 and 49)
static char ngx_http_server_string[] = "Server: MyDomain.com" CRLF;
static char ngx_http_server_full_string[] = "Server: MyDomain.com" CRLF;

редактирование марта 2011: Опоры Flavius ниже для указания на новую опцию, заменяя стандарт Nginx HttpHeadersModule с разветвленным HttpHeadersMoreModule. Перекомпиляция стандартного модуля является все еще быстрым исправлением и имеет смысл, если Вы хотите использовать стандартный модуль и не будете изменять строку сервера часто. Но если Вы хотите больше, чем это, HttpHeadersMoreModule является сильным проектом и позволяет Вам сделать все виды черной магии во время выполнения с Вашими HTTP-заголовками.

57
ответ дан 24 November 2019 в 00:07
поделиться

The only way is to modify the file src/http/ngx_http_header_filter_module.c . I changed nginx on line 48 to a different string.

What you can do in the nginx config file is to set server_tokens to off. This will prevent nginx from printing the version number.

To check things out, try curl -I http://vurbu.com/ | grep Server

It should return

Server: Hai
2
ответ дан 24 November 2019 в 00:07
поделиться

Вы спрашиваете о значении заголовка Сервера в ответе? Можно попытаться изменить это с add_header директивой, но я не уверен, будет ли она работать. http://wiki.codemongers.com/NginxHttpHeadersModule

-4
ответ дан 24 November 2019 в 00:07
поделиться

Существует специальный модуль: http://wiki.nginx.org/NginxHttpHeadersMoreModule

Этот модуль позволяет добавлять, устанавливать или очищать любой вывод или заголовок ввода, который вы укажете.

Это расширенная версия стандартного модуля заголовков , поскольку он предоставляет больше утилит, таких как сброс или очистка «встроенных заголовков», таких как Content-Type , Content-Length и Сервер .

Он также позволяет указать необязательные критерии кода состояния HTTP с помощью параметра -s и дополнительные критерии типа содержимого с помощью параметра -t при изменении заголовков вывода с помощью параметра more_set_headers и more_clear_headers директивы ...

25
ответ дан 24 November 2019 в 00:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: