Wednesday, October 22, 2014

Setup Virtual Hosts Nginx in Debian Wheezy

  • ความเดิมตอนที่แล้ว config nginx + php5 + mysql
  • ได้แค่ default แต่เราจะทำ host แบบ domain name หลายตัวใน server เครื่องนี้ซึ่งมี 1 public ip ครับพี่น้อง
Solved
  • ขั้นตอนแรก ติดตั้ง nginx จาก โพส  config nginx + php5 + mysql ให้เรียบร้อยก่อนนะ
  • Config Virtual Hosts Nginx in Debian Wheezy
  • สร้าง vhost ใหม่โดยคัดลอกคอนฟิกจาก default
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/myhost.com
  • แก้คอนฟิก myhost.com
sudo nano /etc/nginx/sites-available/myhost.com
  • หาคำว่า server {...} บ๊อกแรกเลย ที่ตำแหน่ง server_name คำต่อท้ายจะเป็น localhost ให้เราแก้ตรงนี้แหละเป็น myhost.com
  • และ ที่ตำแหน่ง root แก้พาธของ myhost.com เราได้เลยว่า จะให้ root ไปอยู่ที่พาธใหนในระบบนี้
  • และ ที่ตำแหน่ง index อย่าลืมเพิ่ม index.php ให้เป็นค่าเริ่มต้นสำหรับโหลดตอนเข้าเว็บ
  • ส่วนคอนฟิกอื่นๆ ที่มันมากลับ default อยู่แล้ว ก็ไม่ต้องทำไรมันหรอก ปล่อยไว้ยังงั้นแหละ
server {
    listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

    root /usr/share/nginx/www;
    index index.php index.html index.htm;

    # Make site accessible from http://localhost/
    #server_name localhost;
    server_name myhost.com www.myhost.com;

[...]
location ~ \.php$ {
             try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
             fastcgi_pass 127.0.0.1:9000;  # ในกรณีทีเราคอนฟิก PHP-FPM ใช้เป็น TCP/IP
             #fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
        }
[...]  
}
  • และบันทึกไฟล์ /etc/nginx/sites-available/myhost.com ให้เรียบร้อย
  • ทำการสร้างลิ้งให้ myhost.com ให้ไปอยู่ใน site-enabled folder (มัน enable ง่ายกว่า apache แฮะ)
sudo ln -s /etc/nginx/sites-available/myhost.com /etc/nginx/sites-enabled/myhost.com
  • จากนั้นเมื่อแก้ไขคอนฟิกของ vhost เสร็จแล้ว รีสตาร์ทสักรอบสิ
sudo service nginx restart
  • จากนั้นทดสอบ myhost.com ของเรา โดยแก้ไข /etc/hosts
sudo vi /etc/hosts
  • เพิ่มประมาณนี้เข้าไป 127.0.0.1 myhost.com
127.0.0.1    localhost
127.0.1.1    my-server.com    my-server
127.0.0.1    myhost.com
  • ทำการบันทึกไฟล์ให้เรียบร้อย ทดสอบสิครับทีนี้ http://myhost.com
เพิ่มเติม
  • server_name myhost.com www.myhost.com; แบบนี้พอได้
  • แต่แบบนี้ลองแล้วใช้บ่ได้เลย server_name *.myhost.com;
อ้างอิง
  • https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-virtual-hosts-server-blocks-on-ubuntu-12-04-lts--3
  • http://blogs.reliablepenguin.com/2013/05/23/serveralias-on-nginx
  • https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-14-04-lts

No comments:

Post a Comment