Nginx และ Apache เป็นเว็บเซิร์ฟเวอร์แบบโอเพนซอร์สที่ใช้กับ PHP ปัจจุบัน Apache เป็นเซิร์ฟเวอร์อันดับหนึ่งของเว็บไซต์ส่วนใหญ่เนื่องจากมีการเปิดตัวเมื่อสิบปีก่อนขณะที่ Nginx เข้ามาอยู่อันดับสองในฐานะเซิร์ฟเวอร์ที่ต้องการมากที่สุดสำหรับไซต์ที่ใช้งานอยู่ แต่ละเซิร์ฟเวอร์มีส่วนแบ่งความนิยมด้วยเหตุผลที่ชัดเจน: พลังของ Apache และความเร็วของ Nginx เป็นที่รู้จักอย่างกว้างขวาง อย่างไรก็ตามเซิร์ฟเวอร์ทั้งสองมีข้อบกพร่องบางอย่าง Apache ถือว่ายากในหน่วยความจำของเซิร์ฟเวอร์ในขณะที่ Nginx (ซึ่งดีมากสำหรับไฟล์คงที่) ต้องการความช่วยเหลือของ PHP-FPM หรือโมดูลเช่นสำหรับเนื้อหาแบบไดนามิก.


ในบทความนี้เราจะช่วยคุณรวมเซิร์ฟเวอร์ทั้งสองเพื่อใช้ประโยชน์จากจุดแข็งและกำจัดข้อบกพร่อง เราจะใช้ Nginx เป็นตัวประมวลผลแบบคงที่และ Apache เป็นตัวประมวลผลสำหรับเนื้อหาส่วนหลังแบบไดนามิก.

ข้อกำหนดเบื้องต้น

ในการเริ่มต้นด้วยขั้นตอนต่าง ๆ ในบทความนี้คุณจำเป็นต้องมีสิ่งต่อไปนี้:

  • เซิร์ฟเวอร์เฉพาะที่ใช้งาน Ubuntu 16.04
  • บัญชีผู้ใช้มาตรฐานที่มีสิทธิ์ sudo บนเซิร์ฟเวอร์ของคุณ
  • ที่อยู่ IP แบบคงที่สำหรับเซิร์ฟเวอร์นี้

เริ่มต้นใช้งาน

สิ่งแรกเมื่อทำการติดตั้ง Nginx คือทำให้แน่ใจว่าเซิร์ฟเวอร์ของคุณทันสมัย T อัปเดตเซิร์ฟเวอร์ของคุณเรียกใช้คำสั่งด้านล่าง:

$ sudo apt-get update
$ sudo apt-get upgrade

ขั้นตอนที่ 1: การติดตั้ง Nginx

เริ่มต้นด้วยการติดตั้ง nginx โดยทำตามคำสั่งด้านล่าง:

$ sudo apt-get install nginx

เมื่อติดตั้งแล้วให้ตั้งค่าและกำหนดค่า Nginx เป็น reverse proxy เพื่อให้สามารถทำงานได้ที่ส่วนหน้า.

ขั้นตอนที่ 2: การกำหนดค่า Nginx

เมื่อติดตั้ง Nginx แล้วคุณสามารถเริ่มกระบวนการกำหนดค่าได้โดยสร้างไฟล์โฮสต์เสมือนใหม่โดยใช้คำสั่ง:

$ sudo nano / etc / nginx / sites-available / webproxy

เพิ่มการกำหนดค่าด้านล่างลงในไฟล์ของคุณ:

เซิร์ฟเวอร์ {
ฟัง 80;

รูท / var / www /;
index index.php index.html index.htm;

server_name example.com;

ตำแหน่ง / {
try_files $ uri $ uri / /index.php;
}

ตำแหน่ง ~ \ .php $ {

proxy_set_header X-Real-IP $ remote_addr;
proxy_set_header X-Forwarded- สำหรับ $ remote_addr;
proxy_set_header โฮสต์ $ host;
proxy_pass http://127.0.0.1:8080;

}

สถานที่ตั้ง ~ /\.ht {
ปฏิเสธทั้งหมด
}
}

ในการกำหนดค่านี้การเปลี่ยนแปลงเหล่านี้ถูกนำไปใช้:

  • ราก ได้รับการปรับเพื่อระบุไดเรกทอรีราก.
  • try_files พยายามเข้าร่วมหน้าใด ๆ ที่ผู้เข้าชมร้องขอ หาก Nginx ไม่สามารถดำเนินการตามคำขอนี้ได้จะส่งผ่านไปยังพร็อกซีของคุณ.
  • proxy_pass อนุญาตให้ nginx กำหนดที่อยู่เฉพาะของเซิร์ฟเวอร์พร็อกซีของคุณ.
  • ที่ตั้ง บล็อก จำกัด การเข้าถึงไฟล์. htaccess.

เรียกใช้คำสั่งด้านล่างเพื่อตรวจสอบไวยากรณ์การกำหนดค่า Nginx:

$ sudo nginx -t

หากทุกอย่างเรียบร้อยคุณควรได้ผลลัพธ์ต่อไปนี้:

nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ไวยากรณ์ใช้ได้
การทดสอบ nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf สำเร็จ

ถัดไปเรียกใช้คำสั่งด้านล่างเพื่อเปิดใช้งานโฮสต์เสมือนของคุณ:

$ sudo ln -s / etc / nginx / sites-available / proxyhost / etc / nginx / sites-enabled / webproxy

จากนั้นลบบล็อกเซิร์ฟเวอร์บริการ Nginx เริ่มต้นด้วยการรันคำสั่ง:

$ sudo rm / etc / nginx / sites-enabled / default

เริ่มบริการ Nginx ของคุณโดยใช้คำสั่งด้านล่าง:

$ sudo /etc/init.d/nginx เริ่มต้น

หากคุณต้องการกำหนดค่า Nginx ให้เริ่มต้นในเวลาบูตให้รันคำสั่งด้านล่าง:

$ sudo update-rc.d ค่าเริ่มต้นของ nginx

ขั้นตอนที่ 3: การติดตั้ง Apache

ด้วยการเปิดใช้งาน Nginx ตอนนี้คุณสามารถติดตั้ง Apache เพื่อจัดการคำขอพร็อกซี.

ในการติดตั้ง Apache ให้รันคำสั่งด้านล่าง:

$ sudo apt-get install apache2

จนถึงตอนนี้ Nginx ยังคงปิดอยู่ดังนั้น Apache จะทำงานบนพอร์ต 80.

ขั้นตอนที่ 4: การกำหนดค่า Apache

เรากำกับให้ Nginx กำหนดทิศทางพร็อกซีไปยังพอร์ต 8080 ซึ่งเป็นจุดที่ Apache รับฟังการร้องขอ ตอนนี้เราควรสั่งให้ Apache ใช้พอร์ต 8080 และออกจากพอร์ต 80 สำหรับ Nginx ตอนนี้ไปข้างหน้าและเปิดพอร์ต Apache เพื่อตั้งบนพอร์ตที่ถูกต้องบน Apache.

เรียกใช้คำสั่งด้านล่างเพื่อเปิดไฟล์ Apache Ports ของคุณ:

$ sudo nano /etc/apache2/ports.conf

ค้นหาและแก้ไขบรรทัดด้านล่างเพื่อให้แน่ใจว่า Apache ทำงานบนพอร์ตที่ต้องการ 8080 จาก localhost:

ชื่อ VirtualHost 127.0.0.1:8080
ฟัง 127.0.0.1:8080

บันทึกไฟล์และออก ตอนนี้เริ่มบริการ Apache ของคุณ:

$ sudo /etc/init.d/apache2 รีสตาร์ท

คุณสามารถกำหนดค่า Apache ให้เริ่มตอนบูทโดยใช้คำสั่งด้านล่าง:

$ sudo update-rc.d apache2 เป็นค่าเริ่มต้น

ถัดไปแก้ไขไฟล์ virtualhost เริ่มต้น:

$ Sudo /etc/apache2/sites-enabled/000-default.conf

ตรวจสอบให้แน่ใจว่าการกำหนดค่าเป็นแบบหนึ่งด้านล่าง:

ServerAdmin webmaster @ localhost
DocumentRoot / var / www /
ErrorLog $ {APACHE_LOG_DIR} /error.log
CustomLog $ {APACHE_LOG_DIR} /access.log รวมกัน

บันทึกเนื้อหาและออกจากนั้นเริ่มบริการ Nginx และ Apache อีกครั้งโดยใช้คำสั่งด้านล่าง:

$ sudo /etc/init.d/apache2 รีสตาร์ท
$ sudo /etc/init.d/nginx ทำการรีสตาร์ท

ขั้นตอนที่ 5: การติดตั้ง PHP5

ก่อนทำการทดสอบอะไรตรวจสอบให้แน่ใจว่าคุณติดตั้ง PHP ด้วยคำสั่งด้านล่าง:

$ sudo apt-get install php5

บันทึกและออกจากนั้นรีสตาร์ททั้งบริการ Nginx และ Apache เพื่อใช้การเปลี่ยนแปลงเหล่านี้:

$ sudo service apache2 ทำการรีสตาร์ท
$ sudo service nginx ทำการรีสตาร์ท

ขั้นตอนที่ 6: ทดสอบ Nginx Reverse Proxy

ในการกำหนดค่าทุกอย่างอย่างถูกต้องคุณสามารถทดสอบการทำงานของ Nginx reverse proxy หากต้องการทำสิ่งนี้ให้เรียกใช้คำสั่ง curl ตามที่แสดงด้านล่าง:

$ curl -I localhost

คุณควรเห็นข้อความด้านล่าง:

HTTP / 1.1 200 ตกลง
เซิร์ฟเวอร์: nginx / 1.6.2 (Ubuntu)
วันที่: พุธ, 28 กรกฎาคม 2016 08:34:02 IST
ประเภทเนื้อหา: ข้อความ / html
ความยาวเนื้อหา: 11321
ปรับเปลี่ยนครั้งล่าสุด: อังคาร, 31 มิถุนายน 2016 10:25:08 IST
การเชื่อมต่อ: Keep-alive
แตกต่างกันไป: ยอมรับการเข้ารหัส
ETag: "564f1a7a-2c39"
หมดอายุ: พุธ 28 กรกฎาคม 2016 08:34:31 IST
การควบคุมแคช: ไม่มีแคช
ยอมรับช่วง: ไบต์

ไขลาน

ตอนนี้ทุกอย่างได้รับการตั้งค่าแล้ว แต่เรากำลังจะทดสอบว่าข้อมูลระบบกำลังถูกนำไปสู่ ​​apache โดยเรียกใช้สคริปต์ PHP อย่างรวดเร็วหรือไม่.

สร้างไฟล์ php.info ของคุณโดยใช้คำสั่งด้านล่าง:

$ sudo nano /var/www/info.php

รวมบรรทัดเหล่านี้ในไฟล์ของคุณ:

<?
phpinfo ();
?>

ตอนนี้บันทึกไฟล์ของคุณและออก จากนั้นเปิดเบราว์เซอร์ของคุณแล้วพิมพ์ที่อยู่ด้านล่าง (แทนที่“ โดเมนหรือที่อยู่ IP” ด้วยชื่อโดเมนที่ถูกต้องของคุณ.

http: //DOMAIN_OR_IP_ADDRESS/info.php

หน้านี้จะปรากฏขึ้น:

ข้อสรุป

ตอนนี้คุณควรมี NGINX เป็น reverse proxy สำหรับ Apache บน Ubuntu 16.04 การกำหนดค่าที่ประสบความสำเร็จของ nginx และ Apache สามารถช่วยเพิ่มยอดเยี่ยมให้กับเซิร์ฟเวอร์ของคุณ.

หากคุณต้องการปรับปรุงประสิทธิภาพของเซิร์ฟเวอร์เราขอแนะนำให้คุณเปลี่ยนไปใช้บริการโฮสติ้งใหม่ที่ทันสมัยกว่า บน HostAdvice คุณจะพบบริการเว็บโฮสติ้งที่ดีที่สุดพร้อมกับความคิดเห็นของผู้ใช้และราคาตามแผน.

ลองดูบริการบนเว็บโฮสติ้งที่ดีที่สุด 3 อันดับแรก

FastComet

ราคาเริ่มต้น:
$ 2.95


ความเชื่อถือได้
9.7


การตั้งราคา
9.5


เป็นมิตรกับผู้ใช้
9.7


สนับสนุน
9.7


คุณสมบัติ
9.6

อ่านความคิดเห็น

เยี่ยมชม FastComet

A2 Hosting

ราคาเริ่มต้น:
$ 3.92


ความเชื่อถือได้
9.3


การตั้งราคา
9.0


เป็นมิตรกับผู้ใช้
9.3


สนับสนุน
9.3


คุณสมบัติ
9.3

อ่านความคิดเห็น

เยี่ยมชม A2 Hosting

ChemiCloud

ราคาเริ่มต้น:
$ 2.76


ความเชื่อถือได้
10


การตั้งราคา
9.9


เป็นมิตรกับผู้ใช้
9.9


สนับสนุน
10


คุณสมบัติ
9.9

อ่านความคิดเห็น

เยี่ยมชม ChemiCloud

บทความเชิงปฏิบัติที่เกี่ยวข้อง

  • ส่วนที่หนึ่ง: วิธีการตรวจสอบ Nginx โดยใช้ Elastic Stack บน CentOS 7 VPS หรือเซิร์ฟเวอร์เฉพาะ
    ผู้เชี่ยวชาญ
  • วิธีกำหนดค่า Nginx และ Apache Together บน Ubuntu VPS หรือ Dedicated Server เดียวกัน
    สื่อกลาง
  • ส่วนที่สอง: วิธีการตรวจสอบ Nginx โดยใช้ Elastic Stack บน CentOS 7 VPS หรือเซิร์ฟเวอร์เฉพาะ
    ผู้เชี่ยวชาญ
  • วิธีการติดตั้ง Apache Cassandra บน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
  • วิธีการโฮสต์หลายเว็บไซต์บน Ubuntu 18.04 VPS หรือเซิร์ฟเวอร์เฉพาะ
    สื่อกลาง
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me