Score:0

กฎการเปลี่ยนเส้นทาง Nginx ไปยังไดเรกทอรีย่อย

ธง in

ฉันมีแอปพลิเคชัน PHP เก่าที่ทำงานด้วย Apache ตอนนี้ฉันต้องเปลี่ยนไปใช้ Nginx

กฎการเปลี่ยนเส้นทาง htaccess

php_value upload_max_filesize "5M"

AddType ข้อความ/x-component .htc


RewriteEngine เปิดอยู่
RewriteBase /brand/kit/summer-icecream/lacne

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(/admin/)
เขียนซ้ำ Cond %{REQUEST_URI} !(/setup/)
RewriteCond %{REQUEST_URI} !(/support/)
RewriteCond %{REQUEST_URI} !(/แชร์/)
เขียนซ้ำ Cond %{REQUEST_URI} !(/rss/)
เขียนซ้ำ Cond %{REQUEST_URI} !(/output/)
เขียนซ้ำ Cond %{REQUEST_URI} !(/upload/)
RewriteCond %{REQUEST_URI} !(/app_api/)
RewriteRule ^(.+)\.php$share/admin/$1.php [L]

RewriteRule app_api/(.+)\.php$share/app_api/$1.php [L]

ฉันได้ลองเปลี่ยนเส้นทางหลายวิธีเช่นด้านล่าง แต่ดูเหมือนว่าใช้งานไม่ได้ มันไม่ส่งไฟล์ PHP ไปยัง PHP-FPM

สถานที่ ~ brand/kit/summer-icecream/lacne/(.+)\.php$ {
        ถ้า (!-e $request_filename){
           เขียนใหม่ ^/brand/kit/summer-icecream/lacne/(.+)\.php$ /brand/kit/summer-icecream/lacne/share/admin/$1.php redirect;
        }
    }

    ตำแหน่ง ~ (.+)\.php$ {
       try_files $uri =404;
       fastcgi_pass fastcgi_backend;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       รวม fastcgi_params;
       fastcgi_read_timeout 600 วินาที;
       fastcgi_connect_timeout 600 วินาที;
       fastcgi_param REMOTE_ADDR $remote_addr;
       fastcgi_param HTTP_HOST $โฮสต์;
       รวม /etc/nginx/fastcgi_config;
    }

สำหรับการทดสอบ URI คำขอคือ: http://127.0.0.1:8989/brand/kit/summer-icecream/lacne/login.php

djdomi avatar
za flag
คุณสามารถเรียกใช้ nginx และ apache แบบขนานได้เนื่องจากเป็นการตั้งค่าทั่วไป - ปล่อยให้สิ่งเก่าทำงานบน apache และใช้ nginx เพื่อ proxy_pass นั่นไม่ใช่ตัวเลือกใช่ไหม
user2306811 avatar
in flag
วิธีนี้จะทำให้สแต็กซับซ้อนขึ้นสำหรับการบำรุงรักษาต่อไป หากไม่มีตัวเลือกสำหรับ Nginx ฉันต้องกลับมาใช้ Apache
Gerard H. Pille avatar
in flag
บางที nginx อาจไม่ฟังใน 127.0.0.1:8989 ยากที่จะพูดด้วยสารสกัดจากการกำหนดค่าของคุณเท่านั้น
Ivan Shatsky avatar
gr flag
การใช้ `if (!-e $request_filename) { ... }` เป็นวิธีปฏิบัติที่ไม่ดี (โดยปกติโครงสร้างนี้แนะนำโดยตัวแปลงการกำหนดค่า apache-to-nginx ออนไลน์) คุณสามารถลองใช้ตัวแปลง [นี้](https://www.getpagespeed.com/apache-to-nginx) (สร้างโดย [Danila Vershinin](https://serverfault.com/users/242885/danila-vershinin))

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา