nginx nodejs

How to fix Access-Control-Allow-Origin

Access to fetch at ‘’ from origin ‘’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

ปัญหาเกิดจาก client พยายามจะเรียก web server ข้าม domain กัน ทำให้เกิดปัญหา Access-Control-Allow-Origin

digital ocean Docker nginx

ทำ Reverse Proxy ด้วย NGINX

สิ่งที่ต้องเตรียมใน workshop นี้

1 สมัคร เพื่อเตรียมไว้สร้าง Server ทดสอบ

2 สมัคร เพื่อตั้งค่า dns ของโดเมนและซับโดเมน

3 Unix/Linux Command เบื้องต้น เช่น cd, mkdir

4 nginx และ Docker Compose พื้นฐาน ดูได้จากติดตั้ง-nginx-ด้วย-docker-compose/


สร้าง Droplet ใหม่ที่ DigitalOcean

เลือก plan ต่ำสุดเพื่อนำมาทดสอบ แล้วค่อยระเบิดทิ้ง แต่ท่านใดเงินเหลือๆ เลือก 32 cpu เพื่อความลื่นปรื๊ดก็ไม่ว่ากันฮะ 555+

Docker nginx

ติดตั้ง Nginx ด้วย Docker Compose

เริ่มจากสร้างไฟล์ docker-compose.yml

version: '2.0'
        image: nginx:1.13.0-alpine
        container_name: wrk-nginx
        restart: always
        - "9001:80"
        - ./html/:/usr/share/nginx/html
image: nginx:1.13.0-alpine

เลือก image nginx:1.13.0-alpine ซึ่งเป็นตัว image ที่ใช้ Alpine Linux project (โครงการของ Alpine Linux นี้ก็ถูกพัฒนาขึ้นมาเพื่อตอบโจทย์การใช้ Container ให้มีขนาดไม่เกิน 8MB และใช้พื้นที่รวมไม่เกิน 130 MB รวมถึงยังถูกออกแบบมาให้มีความปลอดภัยสูง)

Docker nginx 🏴‍☠️

Reverser Proxy ด้วย Nginx บน Docker

ใน workshop ครั้งนี้ จะใช้ digital ocean โดยไปตั้งค่า subdomain ก่อนที่ network โดยเพิ่มที่ CNAME ดังนี้ ,

Docker nginx Ubuntu 🏴‍☠️

วิธีการติดตั้ง Free SSL Certificates จาก Let’s Encrypt โดยใช้ Docker และ Nginx

Install Docker on Ubuntu

curl -fsSL | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable"

 Update the Ubuntu package database

sudo apt-get update

install Docker

sudo apt-get install -y docker-ce
digital ocean nginx 🏴‍☠️

ติดตั้ง Laravel 5 ร่วมกับ MAMP บน OSX

install MAMP

*I was able to disable the Apache server that ships with OSX using the following command:

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist

Find out where your PHP executable is located:
which php

Check this is the most recent version and under /Applications/MAMP
Add this path to ~/.bash_profile

sudo nano ~/.bash_profile

export PATH=/Applications/MAMP/bin/php/php5.6.2/bin:$PATH

source ~/.bash_profile

curl -s | php

php composer.phar

sudo mv composer.phar /usr/bin/

sudo nano ~/.bash_profile

alias composer="php /usr/bin/composer.phar"

cd /Applications/MAMP/htdocs

composer create-project laravel/laravel your-project-name –prefer-dist

sudo chmod -R 775 your-project-name/storage
* Laravel 5

sudo chmod -R 775 your-project-name/app/storage
* Laravel < 5


digital ocean nginx Ubuntu 🏴‍☠️

ติดตั้ง Laravel 5 กับ Nginx บน Ubuntu 14.04

sudo apt-get update
sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git

sudo nano /etc/php5/fpm/php.ini
uncomment this and set

sudo php5enmod mcrypt

sudo service php5-fpm restart

sudo mkdir -p /var/www/laravel

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

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

root /var/www/laravel/public;
index index.php index.html index.htm;

server_name server_domain_or_IP;

location / {
try_files $uri $uri/ /index.php?$query_string;

location ~ .php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;

sudo service nginx restart

Create Swap File (Optional) (like a 512mb Droplet).

First, we can create an empty 1GB file by typing:

sudo fallocate -l 1G /swapfile
We can format it as swap space by typing:

sudo mkswap /swapfile
Finally, we can enable this space so that the kernel begins to use it by typing:

sudo swapon /swapfile

Install Composer and Laravel

cd ~
curl -sS | php

sudo mv composer.phar /usr/local/bin/composer

sudo composer create-project laravel/laravel /var/www/laravel

sudo chown -R :www-data /var/www/laravel

sudo chmod -R 775 /var/www/laravel/storage
* Laravel 5

sudo chmod -R 775 /var/www/laravel/app/storage
* Laravel < 5


ref :