LINUX.ORG.RU
решено ФорумAdmin

Правильный конфиг для nginx

 , , ,


0

2

Есть сотфина для рассылок, называется MailWizz. По ссылке приведен ее официальный конфиг для nginx.

Вопрос первый, можно ли по-человечески переписать эту конфигурацию?

Вопрос второй, как заставить работать данную софтину из подкаталога основного сайта (/mail) и возможно ли это?

Предполагается, что в качестве основного сайта Wordpress.

Само приложение написано на Yii, номера версии не знаю.

Должно быть второй.

★★★★★

не вижу ничего криминального.

1) Что касается нескольких условий идущих подряд - перепиши софтину.

2) >>Вопрос второй, как заставить работать данную софтину из подкаталога основного сайта (/mail) и возможно ли это?

Зависит от софтины - если там прописаны пути относительные то можно, если абсолютные - то нужно менять через https://nginx.ru/ru/docs/http/ngx_http_sub_module.html Хотя я бы сделал поддомен.

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

Вопрос первый, можно ли по-человечески переписать эту конфигурацию?

Как минимум можно убрать if (!-e $request_filename) вокруг рерайтов используя try_files вместо if и последнего рерайта

Вопрос второй, как заставить работать данную софтину из подкаталога основного сайта (/mail) и возможно ли это?

Оно тебе точно нужно? Как по мне субдомены для такого удобнее

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

Мне скорее из принципа, чем из практики ;-)

Я ща по-быстрому все равно сделаю субдоменом.

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

Twissel ★★★★★
() автор топика

Короче говоря, нарыл в Сети вот такой кусок

location / {

        location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ {
            expires     max;
        }

        #location ~ [^/]\.php(/|$) {
        #    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        #    if (!-f $document_root$fastcgi_script_name) {
        #        return  404;
        #    }
	location ~ \.php$ {
            fastcgi_split_path_info  ^(.+\.php)(.*)$;
	    fastcgi_param  PATH_INFO        $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass    unix:/var/run/php/mail.site.club.sock;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
	# -- Cache media images and turn off logging to access log
	location ~ \.(gif|png|swf|js|ico|cur|css|jpg|jpeg|txt|mp3|mp4|ogg|ogv|webm|wav|ttf|woff|eot|svg)$ {
		expires 30d;
		add_header Cache-Control "public";
		access_log off;
	}

	# -- Do not cache document html and data
	location ~ \.(?:manifest|appcache|html?|xml|json)$ {
		expires -1;
	}

	# -- Cache CSS and Javascript
	location ~* \.(?:css|js)$ {
		expires 2d;
		add_header Cache-Control "public";
	}

	# --- Rewrite newsletters
	rewrite ^/lists/([a-z0-9]+)/update-profile/([a-z0-9]+)$ http://www.bidorbuy.co.za/jsp/newsletters/NewsletterSignUp.jsp last;

	# --- Mailwizz
	location /api {
		if ($request_method !~ ^(GET|HEAD|POST|PUT|DELETE)$ ) {
			return 405;
		}
		try_files $uri $uri/ /api/index.php?$args;
	}    
	location /backend {
		if ($request_method !~ ^(GET|HEAD|POST|)$ ) {
			return 405;
		}
		try_files $uri $uri/ /backend/index.php?$args;
	}    
	location /customer {
		if ($request_method !~ ^(GET|HEAD|POST|)$ ) {
			return 405;
		}
		try_files $uri $uri/ /customer/index.php?$args;
	}        
	location / {
		if ($request_method !~ ^(GET|HEAD|POST|)$ ) {
			return 405;
		}
		try_files $uri $uri/ /index.php?$args;
} 

            fastcgi_pass    unix:/var/run/php/mail.site.club.sock;
            fastcgi_index   index.php;
            include         /etc/nginx/fastcgi_params;
        }
    

Вроде работает.

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