ติดตั้ง Nginx เพื่อใช้งานร่วมกับ Apache2

24 Jun 2016

Share to:

ในปัจจุบันมี web server อยู่สองเจ้าที่ได้รับความนิยมคือ apache2 และ nginx สองเจ้านี้จะมีขอดีข้อเสียงต่างกัน nginx จะมีข้อดีคือ สามารถรองรับ user concurrent และ request static file ได้ดีกว่า apache2 ส่วน apache2 มีข้อดีคือ PHP ซึ่ง PHP ของ nginx นั้น จะทำงานผ่านโมดูล FastCGI อีกทีหนึ่ง  ซึ่งจะได้ Performance ที่ช้ากว่า mod_php ของ apache2 ที่ทำงานแบบ

Native จึงนิยมนําทั้งสองตัวมาทํางานร่วมกันคือ ถ้า user เรียก static file  เช่น ไฟล์ภาพ html … จะเป็นหน้าที่ของ nginx แต่ถ้า user เรียกไฟล์ php ก็จะเป็นหน้าที่ของ apache2 เพื่อเพิ่มประสิทธิภาพของ web server

ขั้นตอนการติดตั้ง nginx

ติดตั้ง nginx ด้วยคําสั่ง

sudo apt-get install nginx -y

เปิดไฟล์ “default” เพื่อแก้ไขค่า config ของ web server ด้วยคําสั่ง

sudo nano /etc/nginx/sites-available/default

แก้ไขค่า config ตามนี้

server {
 listen 80 default_server;
 listen [::]:80 default_server ipv6only=on;

 root /var/www; #ใส่ path ที่อยู่ของเว็บที่ต้องการ
 index index.php index.html index.htm; #ชื่อไฟล์ index

 server_name localhost; #Domain name ของเว็บเรา เช่น thitiblog.com

 location / { #กรณีที่เรียกไฟล์ภายใต้ root path จะทําตาม script ด่านล่าง
  #pass proxy ไปที่ apache2(127.0.0.1:8080)
  proxy_set_header X-Real-IP  $remote_addr;
  proxy_set_header X-Forwarded-For $remote_addr;
  proxy_set_header Host $host;
  proxy_pass http://127.0.0.1:8080;
 }

 #กรณีที่เรียกไฟล์ static file ต่างๆจะใช้ nginx ในการประมวลผล
 #ไม่pass proxy ไปที่ apache2
 location ~* ^.+.(pdf|gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)${

 }

}

เปิดการใช้งาน gzip ในการบีบอัดไฟล์ก่อนส่งมาที่ Browserด้วยคําสั่ง

sudo nano /etc/nginx/nginx.conf

แก้ตามนี้

gzip on;
gzip_disable "msie6";
gzip_vary on;
# gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

เสร็จสิ้นการติดตั้ง nginx ขั้นตอนต่อไป ติดตั้ง apache2

ติดตั้ง Apache2 และ config เพื่อใช้งานร่วมกับ nginx

ในบทความนี้จะไม่อธิบายวิธีการติดตั้ง apache2 เพราะได้เขียนไว้แล้วสามารถอ่านเพิ่มเติมได้ที่ วิธีติดตั้ง Apache, MySQL, PHP, phpMyAdmin ใน Ubuntu เมื่อติดตั้งทุกอย่างเรียบร้อยก็ config port ของ apache2 ให้เป็น port 8080 ตามที่เราได้ pass proxy ของ nginx ไว้ในตอนต้น

sudo nano /etc/apache2/ports.conf

แก้จากเดิม 80 เป็น 8080

Listen 8080

สร้าง file config VirtualHost ของ apache2 ด้วยคําสั่ง

sudo nano /etc/apache2/sites-available/myconfig

myconfig เป็นชื่อของ file config เราสามารถตั้งได้ตามต้องการ ใส่ script ดังนี้ โดยเปลี่ยนข้อมูลตามเว็บของท่าน

<VirtualHost *:8080>
        DocumentRoot /var/www #path ที่อยู่ของเว็บ
        ServerAdmin [email protected]
        ServerName thitiblog.com
        ServerAlias thitiblog.com *.thitiblog.com #Domain name
        <Directory /var/www>
                Options Indexes FollowSymLinks
                AllowOverride all
                Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error-thitiblog.log
        CustomLog ${APACHE_LOG_DIR}/access-thitiblog.log combined
</VirtualHost>

save โดยกด Ctrl+x แล้วกด y เปิดใช้งาน script config เมื่อซักครู่นี้โดยใช้คําสั่ง

sudo a2ensite myconfig

เปิด gzip Compression ของ php

sudo nano /etc/php5/apache2/php.ini

แก้ตรงหัวข้อ

zlib.output_compression = On

Restart service nginx and apache2

sudo service nginx restart
sudo service apache2 restart

Suggestion blogs

การสร้าง archive และการบีบอัดข้อมูล linux

การสร้าง archiveการสร้าง archive คือการรวมไฟล์ทุกไฟล์ในไดเรกทอรีให้เป็นไฟล์เดียว สามารถทำได้โดยใช้คำสั่ง

Line notify พื้นฐาน

สวัสดีครับ เรามาทําความรู้จักกับ Line notify และมาลองใช้งานเบื้องต้น เพื่อให้เข้าใจและสามารถนําไปต่อยอดได้ สําหรับ Line notify เป็นบริการหนึ่งของ Line ซึ่ง Line notify มีรูปแบบการให้บริการคือ ทําให้เราสามารถส่งข้อความแจ้งเตือนจาก service หรืออุปกรณ์ใดๆก็ได้ ที่สามารถเชื่อมต่อ internet ได้ และสามารถเชื่อสารด้วย http post มายัง Account ของเราได้

ชอบเล่นควิช หรือเกมส์ทายต่างๆในเฟสบุค ควรอ่าน!

ใครที่ชอบเล่นควิช หรือเกมส์ทายต่างๆในเฟสบุค คุณอาจจะมองว่าเป็นแค่เรื่องเล็กน้อย เล่นสนุกๆ แต่คุณกําลังมีความเสี่ยงที่จะเสียความเป็นส่วนตัวของคุณไป ข้อมูลส่วนตัวของคุณอาจไปตกอยู่ในมือของใครก็ไม่รู้ ที่ผมสนใจก็คือ App พวกนี้มีการร้องขอ Permission(สิทธิ์การเข้าถึงข้อมูล) ของรูปภาพที่คุณอัพโหลดขึ้นไปทั้งหมดบนเฟสบุคของคุณ ผมยํ้าว่าทั้งหมดนะครับ รวมถึงภาพที่เป็น Private และภาพที่คุณถูก Tag ด้วย นั่นหมายความว่าคุณกําลังอนุญาติให้ใครก็ไม่รู้(เจ้าของ App ควิช) มาเข้าถึง หรือ Download รูปส่วนตัวของคุณได้


Copyright © 2019 - 2025 thiti.dev |  v1.45.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Nostr   Youtube channel   Telegram   Email contact   วงแหวนเว็บ