LINUX.ORG.RU
ФорумAdmin

Помогите с sed

 


0

1

Всем привет, скриптец пишу, подскажите пожалуйста как грамотно sed поменять
порт в директиве proxy_pass, в частности мне номер порта поменять надо у кокретного домена а не у всех сразу
вот пример конфига

server {
listen *:80;
server_name test.yy http://www.test.yy;
error_log /var/log/nginx/domains/test.yy.error.log error;

location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_pass http://127.0.0.1:80;
proxy_buffering off;
client_max_body_size 512m;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}

server {
listen *:80;
server_name sada.rr http://www.sada.rr;
error_log /var/log/nginx/domains/sada.rr.error.log error;

location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection «upgrade»;
proxy_pass http://127.0.0.1:80;
proxy_buffering off;
client_max_body_size 512m;
proxy_connect_timeout 3600s;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
send_timeout 3600s;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}
}

★★★

Последнее исправление: Ien_Shepard (всего исправлений: 1)

Не пытайся парсить xhtml регулярками. Напиши грамматику, разбирающую конфигш нгинкса и ей все и делай.

anonymous
()

s/(proxy_pass\s+[0-9.]+:)\d+/\11234/

DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

О, фанатики секты «не парси регулярками» подтянулись. А если у него жёсткий эмбеддед и этот конфиг кроме как его скриптом и кроме как в этой строчке не правится?

DELIRIUM ☆☆☆☆☆
()
Последнее исправление: DELIRIUM (всего исправлений: 1)
Ответ на: комментарий от DELIRIUM

А если у него жёсткий эмбеддед и этот конфиг кроме как его скриптом и кроме как в этой строчке не правится?

Тогда это надо было указывать в стартовом сообщении.

А у тебя я не вижу проверку домена, что ТСу как раз нужно

anonymous
()
Ответ на: комментарий от anonymous

Была такая идея, есть уже шаблоны по которым конфиг генериться, но надо добавить возможность порт поменять в уже сгенерином конфиге, делаю как умею

Ien_Shepard ★★★
() автор топика
Ответ на: комментарий от Ien_Shepard

Если у тебя в конфиге server_name может оказаться где угодно относительно listen, то парсить седом - гиблое дело. Можно написать скрипт, проходящий конфиг и запоминающий все что нужно, а потом менять порт только там, где надо. Это не так уж и сложно.

anonymous
()
Ответ на: комментарий от anonymous

На питоне/перле, ессно, на баше будет такое же гиблое дело.

anonymous
()

как грамотно sed поменять

Да на что угодно его поменять будет довольно грамотно.

Zmicier ★★★★★
()

не нашел решения пришлось генератор конфигов переделать что бы он в отдельные файлы писал

Ien_Shepard ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.