ติดตั้ง 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

เทคนิคการเขียน JavaScript แบบมืออาชีพ

สวัสดีครับ ในบทความนี้เราจะมาเรียนรู้เทคนิคการเขียน JavaScript แบบมืออาชีพกันครับ ซึ่งเป็นเทคนิคเล็กๆน้อยๆที่จะช่วยให้สามารถเขียน Code ได้กระชับ และอ่านง่ายมากยิ่งขึ้น

Get size of text in pixel C#

วิธีหาขนาดของข้อความ ว่ามีขนาดความกว้าง และความสูงกี่ Pixel ทําได้ด้วยตัวอย่าง Function นี้

IPFS คืออะไร

IPFS ย่อมาจาก Interplanetary File System เป็นเว็บแบบกระจายตัว หรือ Decentralized Content Gateway และ IPFS เป็นระบบไฟล์แบบ peer-to-peer คล้ายๆ Blockchain โดยจะกระจายไฟล์ไปเก็บไว้ยังเครื่องคอมพิวเตอร์ที่ทําหน้าที่เป็น Node ทั่วโลก แทนที่จะเก็ไฟล์ไว้ใน Server หรือคอมพิวเตอร์เพียงเครื่องเดียว ทําให้ไฟล์ยังคงอยู่ตลอดไปตามใดที่ยังมีคนสนใจไฟล์นั้น และเก็บไฟล์นั้นไว้


Copyright © 2019 - 2024 thiti.dev |  v1.41.0 |  Privacy policy | 

Build with ❤️ and Astro.

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