Thursday, October 30, 2014

How To Set Up HTTP Authentication With Nginx On Debian 7 Wheezy

  • อยากได้แบบนี้หว่า แต่ก่อนใช้ apache มันทำง่ายมากๆ แล้ว Nginx มันจะง่ายเหมือนกันมั้ยหว่า
  • เค้าเรียกว่า

HTTP Authentication

  • ก่อนอื่นเครื่องเราต้องติดตั้ง Nginx ก่อนนะครับ โดยดูวิธีติดตั้งได้จากโพสนี้

Installing Nginx With PHP5 (And PHP-FPM) And MySQL Support (LEMP) On Debian Wheezy

  • เมื่อ Nginx เราพร้อมแล้วมาคอนฟิกกัน
Solved
Step 1: Apache Utils
  • เราจะใช้ htpasswd สำหรับสร้าง user และ password ที่เข้ารหัสนะ สำหรับ http authen นี้เลย โดยเราต้องติดตั้ง apache2-utils ก่อนจึงจะใช้งาน htpasswd ได้
sudo apt-get install apache2-utils
Step 2: Create User and Password
  • เราสามารถใช้พาธอื่น ที่ไม่ใช่พาธตามตัวอย่างนี้ก็ได้นะ และ ไฟล์เก็บ user และ passwd เราสามารถใช้ .mypasswd เพื่อซ่อนไฟล์นี้ด้วยก็น่าจะดี แต่ตัวอย่างนี้ ขอแสดงแบบง่ายๆ พอ
sudo htpasswd -c /etc/nginx/mypasswd myuser
  • มันจะขึ้นรอให้เรากรอกพาสเวิร์ดด้วย
New password:
Re-type new password:
Adding password for user myuser
  • โครงสร้างที่มีการเก็บบันทึกใน /etc/nginx/mypasswd จะได้ประมาณนี้
user:passwd_encryped
Step 3: Update Nginx configuration
  • คอนฟิก host เราซะหน่อย
sudo vi /etc/nginx/sites-available/myhost
  • เพิ่ม 2 บรรทัดนี้ เข้าไปใน config ของ site หรือ alias ที่เราต้องการใช้ http authen
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/mypasswd;
  • ในคอนฟิกโฮสเราจะได้ประมาณนี้ (เราสามารถนำ 2 บรรทัดนี้ไปวางไว้ใน alias ก็ได้นะ)
server {
  listen       portnumber;
  server_name  ip_address;
  location / {
      root   /var/www/mywebsite.com;
      index  index.html index.htm;
      auth_basic "Restricted";                                #For Basic Auth
      auth_basic_user_file /etc/nginx/.htpasswd;  #For Basic Auth

  }
}
Step 4: Restart Nginx
  • ตามอ้างอิงเค้าบอกให้ reload แต่เราจะ restart เลย
sudo /etc/init.d/nginx restart

อ้างอิง
  • ผู้โพสอ้างอิงบน Debian 7 Wheezy  แต่จากอ้างอิงบน เว็บ digitalocean เค้าอ้างอิงบน Ubuntu 12.10 นะครับพี่น้อง
  • https://www.digitalocean.com/community/tutorials/how-to-set-up-http-authentication-with-nginx-on-ubuntu-12-10
  • http://www.howtoforge.com/basic-http-authentication-with-nginx

No comments:

Post a Comment