thaiall logomy background
nginx คือ เว็บเซิร์ฟเวอร์ที่มีประสิทธิภาพ และนิยมเป็นที่หนึ่ง
my town
omni | jmeter |
NGINX NGINX คือ เว็บเซิร์ฟเวอร์ที่ได้รับความนิยมเพิ่มขึ้นเป็นอันดับหนึ่ง ทำงานได้มีประสิทธิภาพบนลีนุกซ์ ต่างกับ apache ที่เป็นเว็บเซิร์ฟเวอร์เช่นกัน แต่ได้รับความนิยมถดถอยลงไปเป็นอันดับสอง จากการจัดอันดับของ w3techs.com หรือ Netcraft.com หรือ Google search trends
ซึ่ nginx นิยมใช้งานจริงบน linux หรือ ios มากกว่า windows การทำงานบน linux จะมีประสิทธิภาพมากกว่า แต่หากใช้งานบน windows และติดตั้งให้ง่ายที่สุด 1) เสนอให้ติดตั้ง xampp รุ่น 7 ลงไปก่อน เพื่อให้ได้ php และ mysql มาใช้งานบน nginx 2) การกำหนดค่าทำเพียงแฟ้มเดียว คือ nginx.conf โดยกำหนดให้ nginx รู้จัก .php และกำหนดให้ index.php เป็น default index file 3) การสั่งเริ่มการทำงานของ php นั้น ใช้โปรแกรมบริการเปิดพอร์ต php-cgi -b 127.0.0.1:9000 และเลือกใช้โปรแกรม runhiddenconsole.exe ทำให้ส่วนของ console ถูกซ่อนไว้ในขณะสั่งเริ่มทำงาน 4) การสั่งเริ่มการทำงานของ mysql นั้น ใช้ความสามารถสั่งเริ่มการทำงาน ตามโปรแกรม xampp ได้ทันที
แนะนำเว็บไซต์
http://nginx.org/en/docs/windows.html
https://codefaq.org/server/how-to-install-nginx-php-mysql-on-windows-10/
รู้จัก Nginx โดย borntodev Nginx หรืออ่านว่า Engine-X เป็นเว็บเซิร์ฟเวอร์ที่สามารถรองรับผู้ใช้งานได้หลากหลาย และมีประสิทธิภาพสูง เป็น Open-Source รองรับ Reverse Proxying, Caching, Load Balancing สำหรับเซิร์ฟเวอร์ HTTP, TCP และ UDP, และการทำ Media Streaming นอกจากนี้ยังสามารถใช้เป็น Proxy Server สำหรับอีเมล์ (IMAP, POP3, and SMTP) ได้อีกด้วย
ดยส่วนใหญ่แล้ว จะถูกใช้งานกับเว็บที่มีการอัพโหลด หรือ ดาวน์โหลดบ่อย ๆ หรือใช้ในการ Streaming สามารถรองรับการเชื่อมต่อในปริมาณมาก จัดการ Traffic ได้อย่างมีประสิทธิภาพและรวดเร็ว
บทเรียนการใช้งาน nginx
 /*
http://nginx.org/en/download.html
http://nginx.org/en/docs/windows.html (read #1)

cd c:\
unzip nginx-1.21.1.zip
cd nginx-1.21.1
start nginx

C:\nginx-1.21.1>tasklist /fi "imagename eq nginx.exe"
Image Name           PID Session Name     Session#    Mem Usage
=============== ======== ============== ========== ============
nginx.exe            652 Console                 0      2 780 K
nginx.exe           1332 Console                 0      3 112 K

access_log   E:\_pub\nginx-1.21.1\logs\access.log;
root         E:\_pub\nginx-1.21.1\html;

nginx -s stop	fast shutdown
nginx -s quit	graceful shutdown
nginx -s reload	changing configuration
nginx -s reopen	re-opening log files

https://codefaq.org/server/how-to-install-nginx-php-mysql-on-windows-10/ (read #2)
C:\xampp7\php
C:\xampp7\mysql

download https://redmine.lighttpd.net/attachments/660/RunHiddenConsole.zip
unzip in E:\_pub\nginx-1.21.1>
E:\_pub\nginx-1.21.1> dir runhiddenconsole.exe

E:\_pub\nginx-1.21.1> nginx -v
nginx version: nginx/1.21.1

E:\_pub\nginx-1.21.1> C:\xampp7\php\php.exe -v
PHP 7.2.26 (cli) (built: Dec 17 2019 15:29:10) ( ZTS MSVC15 (Visual C++ 2017) x64 )

E:\_pub\nginx-1.21.1> C:\xampp7\mysql\bin\mysqld.exe -V
C:\xampp7\mysql\bin\mysqld.exe  Ver 10.4.11-MariaDB for Win64 on AMD64 (mariadb.org binary distribution)

E:\_pub\nginx-1.21.1> notepad conf/nginx.conf
old
location / {
	root   html;
	index  index.html index.htm;
}
new
location / {
	root   html;
	index  index.php index.html index.htm;
}

create new
location ~ \.php$ {
	root           html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

E:\_pub\nginx-1.21.1> runhiddenconsole C:\xampp7\php\php-cgi -b 127.0.0.1:9000

E:\_pub\nginx-1.21.1> nginx

E:\_pub\nginx-1.21.1> nginx -s reload

E:\_pub\nginx-1.21.1> nginx -s reopen

C:\xampp7\> mysql_start.bat
C:\xampp7\> netstat -na | findstr 3306
C:\xampp7\> C:\xampp7\mysql\bin\mysql -u root -p
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit;

E:\_pub\nginx-1.21.1> notepad html\index.php
<?php
	echo "PHP works!";
	$servername = "localhost";
	$username = "root";
	$password = "";
	// Create connection
	$conn = mysqli_connect($servername, $username, $password);
	// Check connection
	if (!$conn) {
	    die("Connection failed: " . mysqli_connect_error());
	}
	echo "Connected to MYSQL successfully";
	phpinfo();
?> 

explorer http://127.0.0.1/
*/
Load balance
E:\_pub\nginx-1.21.1>nginx
E:\_pub\nginx-1.21.1>nginx -s stop

http://www.burin.com หรือ http://127.0.0.1
พบ 502 Bad Gateway server error response code indicates that the server, 
while acting as a gateway or proxy, 
received an invalid response from the upstream server.

c:\xampp5\apache\conf\httpd.conf
Listen 81
apache_start.bat
c:\xampp7\apache\conf\httpd.conf
Listen 82
Listen 83


Right click บน notepad เลือก Run as administrator
เปิดแฟ้ม C:\Windows\System32\drivers\etc\hosts
127.0.0.1 www.burin.com
127.0.0.1 www.burin1.com
127.0.0.2 www.burin2.com
127.0.0.3 www.burin3.com

https://www.nginx.com/resources/wiki/start/topics/examples/full/
https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
ใหม่
http {
    upstream www.burin.com {
        server 127.0.0.1:81;
        server 127.0.0.1:82;
    }   
    server {
        location / {
            proxy_pass http://www.burin.com;
        }
    }
}

เดิม
worker_processes  1;
events { worker_connections  1024; }
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / { root   html; index  index.php index.html index.htm; }
    }
}
ภาพประกอบ
rspsocial
Thaiall.com