|
|
|
# nginx setup
|
|
|
|
|
|
|
|
## asennus pilven testauspalvelimelle
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo apt-get install nginx
|
|
|
|
```
|
|
|
|
|
|
|
|
### certbot
|
|
|
|
|
|
|
|
Certbot luo Let's Encryptin ilmaisen SSL-varmenteen domainille ja muokkaa nginxin käyttämään sitä.
|
|
|
|
|
|
|
|
#### pre-config
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install software-properties-common
|
|
|
|
sudo add-apt-repository universe
|
|
|
|
sudo add-apt-repository ppa:certbot/certbot
|
|
|
|
sudo apt-get update
|
|
|
|
```
|
|
|
|
|
|
|
|
#### certbot asennus ja konfigurointi
|
|
|
|
|
|
|
|
Asennuksessa domainin nimeksi asetetaan tacs-testing.cf.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo apt-get install certbot python-certbot-nginx
|
|
|
|
sudo certbot --nginx
|
|
|
|
```
|
|
|
|
|
|
|
|
### Reverse-proxyt
|
|
|
|
|
|
|
|
Reverse-proxyillä ohjataan liikenne lokaalisti pyöriviin kontteihin, jossa sijaitsevat CI-ketjun pystyttämät palvelut.
|
|
|
|
|
|
|
|
Certbot loi jo 443 palvelun, joten lisätään proxy_pass locationin sisälle osoittamaan front-konttia. Lisätään myös XSS-header suojaamaan cross-site scripting hyökkäyksiltä.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo nano /etc/nginx/sites-available/default
|
|
|
|
```
|
|
|
|
|
|
|
|
```
|
|
|
|
location / {
|
|
|
|
proxy_pass http://10.166.0.2:8080;
|
|
|
|
add_header "X-XSS-Protection" "1; mode=block";
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Portille 8443 täytyy luoda oma kuuntelija, ja asettaa osoittamaan backend-konttia:
|
|
|
|
|
|
|
|
```
|
|
|
|
server {
|
|
|
|
|
|
|
|
root /var/www/html;
|
|
|
|
|
|
|
|
index index.html index.htm index.nginx-debian.html;
|
|
|
|
server_name tacs-testing.cf; # managed by Certbot
|
|
|
|
|
|
|
|
listen [::]:8443 ssl ipv6only=on; # managed by Certbot
|
|
|
|
listen 8443 ssl; # managed by Certbot
|
|
|
|
ssl_certificate /etc/letsencrypt/live/tacs-testing.cf/fullchain.pem; # managed by Certbot
|
|
|
|
ssl_certificate_key /etc/letsencrypt/live/tacs-testing.cf/privkey.pem; # managed by Certbot
|
|
|
|
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
|
|
|
|
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
|
|
|
|
location / {
|
|
|
|
proxy_pass http://10.166.0.2:5000;
|
|
|
|
add_header "X-XSS-Protection" "1; mode=block";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Palvelun saa käynnistettyä uudelleen komennolla
|
|
|
|
|
|
|
|
```bash
|
|
|
|
sudo systemctl restart nginx
|
|
|
|
``` |