---
# System prepended metadata

title: Nginx

---

# Nginx

## Port Forwarding

1. install nginx
```
sudo apt install nginx -y
```
<!-- 
2. delete default configuration file
```
sudo rm /etc/nginx/sites-enabled/default
``` -->

3. add our own configuration file
```
sudo vim /etc/nginx/sites-available/cms_nginx
```

```
server {
    listen 80;
   
    location / {
        proxy_pass http://localhost:8888;
    }

    location /admin/ {
        rewrite ^/admin/(.*) /$1 break;
        proxy_pass http://localhost:8889;
    }
    
    location /ranking/ {
        rewrite ^/ranking/(.*) /$1 break;
        proxy_pass http://localhost:8890;
    }
}
```
4. create link
```
sudo ln -s /etc/nginx/sites-available/cms_nginx /etc/nginx/sites-enabled/
```

5. test configuration
```
sudo nginx -t
```

6. restart nginx
```
sudo service nginx restart
```

### Fix Record
#### 413 Request Entity Too Large
在`/etc/nginx/nginx.conf`檔案中找到http段落，加入以下限制
```
client_max_body_size 100m;
```

## Web Server
```
server {
   listen 8080;

   root /var/www/html;

   index index.html;

   location / {
       try_files $uri $uri/ =404;
   }
}
```
如果要改 root directory 的位置，要確保該路徑中的每個資料夾都有`+x`權限，像是
```
root /home/contest/website;
```
要有
```
sudo chmod +x /home
sudo chmod +x /home/contest
```


## Others

possible path of configuration file
`/usr/local/etc/nginx/nginx.conf`
`/etc/nginx/nginx.conf`

```
events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        server_name erichung.sa;

        location / {
            proxy_pass http://localhost:8000;
        }
    }
}
```