You've already forked Epicnabbo-Catalogus-Updated-Daily
🆙 Add more tuts more to come 🆙
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
Optimizing an Ubuntu server is a critical step for ensuring stability, security, and peak performance. Here is a general tutorial on how to best configure your server.
|
||||
|
||||
-----
|
||||
|
||||
### 1\. Update Your System
|
||||
|
||||
Always start by ensuring your system is up to date with the latest security patches and software versions.
|
||||
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt upgrade -y
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
### 2\. Security
|
||||
|
||||
Securing your server is a top priority to prevent unauthorized access.
|
||||
|
||||
* **Secure SSH:** Change the default SSH port (22) to a random, non-standard port. It's also highly recommended to disable root login and use key-based authentication instead of passwords.
|
||||
|
||||
```bash
|
||||
sudo nano /etc/ssh/sshd_config
|
||||
```
|
||||
|
||||
Modify these lines:
|
||||
|
||||
* `Port 22` to `Port <a different number>`
|
||||
* `PermitRootLogin yes` to `PermitRootLogin no`
|
||||
* `PasswordAuthentication yes` to `PasswordAuthentication no`
|
||||
|
||||
* **Set Up a Firewall (UFW):** Enable the firewall and only open the ports you need for your services.
|
||||
|
||||
```bash
|
||||
sudo ufw allow ssh # or your new SSH port
|
||||
sudo ufw allow http
|
||||
sudo ufw allow https
|
||||
sudo ufw enable
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
### 3\. Performance
|
||||
|
||||
Optimize your server's performance based on the services it will run.
|
||||
|
||||
#### For a Web Server (LAMP/LEMP Stack)
|
||||
|
||||
* **PHP OPcache:** This is one of the most important steps for PHP performance. Ensure it's enabled and configured to your site's needs.
|
||||
* **Web Server Fine-Tuning:** Optimize your web server (Nginx or Apache). For Nginx, you can adjust the number of worker processes. For Apache, you can tune `MaxRequestWorkers` and other settings.
|
||||
* **Database (MySQL/MariaDB):** Fine-tune database cache settings like `innodb_buffer_pool_size`. A good rule of thumb is to allocate 50-70% of your total RAM to this setting.
|
||||
|
||||
#### General Server Performance
|
||||
|
||||
* **Enable Zram:** Zram creates a compressed block device in RAM, which significantly improves the speed of swap space and reduces I/O load.
|
||||
|
||||
```bash
|
||||
sudo apt install zram-tools
|
||||
```
|
||||
|
||||
* **Optimize `sysctl`:** Adjust kernel parameters for better network performance. This can tune the TCP stack for higher throughput.
|
||||
|
||||
```bash
|
||||
sudo nano /etc/sysctl.conf
|
||||
```
|
||||
|
||||
Add the following lines for network optimization:
|
||||
|
||||
```ini
|
||||
net.core.rmem_max = 16777216
|
||||
net.core.wmem_max = 16777216
|
||||
net.core.netdev_max_backlog = 262144
|
||||
net.ipv4.tcp_rmem = 4096 87380 16777216
|
||||
net.ipv4.tcp_wmem = 4096 65536 16777216
|
||||
net.ipv4.tcp_max_syn_backlog = 65536
|
||||
```
|
||||
|
||||
-----
|
||||
|
||||
### 4\. Monitoring
|
||||
|
||||
Monitor your server to identify bottlenecks. Tools like **`top`**, **`htop`**, **`nmon`**, or **Grafana** can help you keep an eye on CPU, memory, and I/O usage, allowing you to make further optimizations where needed.
|
||||
Reference in New Issue
Block a user