Basic settings of Nginx

更新於 發佈於 閱讀時間約 7 分鐘
Recently, I add some useful settings for my nginx web server. I would like to take a note of some basic and useful settings of nginx.

http server

First of all, let’s set up the most basic set. Please open your nginx.conf , the basic settings of http server part would be as follows.
Set the port number you want to deploy your web server at listen . Set the domain name you bought from Google Domains, GoDaddy, or just localhost at server_name.
The location / in the server block is to set where the root URL would go. The root is the path where you put your web bundle on your server.

https server

Let’s set up another basic setting. I think the most common and easiest way to get the ssl certificate is using Let’s Encript. Please see the details at https://medium.com/@xdxxxx4713/lets-encrypt-in-nginx-85866b848c8e.
The basic config of https should be as follows. Set the port number 443 and ssl at listen . Normally, the certificates would be located at some path like /etc/letsencrypt/live/your_domain_name. There are two .pem files here. Just set them as follows.

http redirect to https

To prevent user access by http, we need to modify the http server config a little bit. Remove the location setting we mention before, and set return 301 to your https server. Even user access your web by http, it would be redirected to https right now.

virtual host

In reality, it’s not quite possible only to deploy one web service on a server. Let’s talk about how to deploy multi web services on the same server.
Let’s make a directory called sites-available and another call sites-enabled under the path of nginx.
In sites-available , make a file just call your_domain_name . Then set the http and the https config as we mentioned before in this file.
If you want to put this web server online, make a link to nginx/sites-enabled .
In nginx.conf , set include sites-enabled/*; at the last of http block. Then nginx would apply all the settings from sites-enabled .

block direct access by ip

Once you put your website online, there would have many attacks every day. In my experience, most attacks are from bots. It just scans every IP and send the request. Even though most of them are harmless, they are still annoying.
We can block these requests by blocking direct access by IP. Users can only access your site by the domain name.
Just put the below settings to one of your web server config. Set default to listen to make this web server as your default server. Set server_name _; means direct access by IP. Finally, we return 403; . It would make the trick of blocking direct access by IP work.

solve refresh 404 issue

Another issue that should be solved is the refresh 404 problem. All the settings above are about the root URL. Therefore, once you refresh the non-root URL web page, nginx would return 404.
To solve this problem, just put try_files $uri $uri/ /index.html; at the last of location setting.
為什麼會看到廣告
avatar-img
9會員
49內容數
比起詳細教學單一技能,網路上或者市面上整合多項技能的教學相對少很多,但要真的完成一項專案往往不是只靠一項技能便能做到。 而且教科書式的完整教學也比較枯燥乏味,因此我想以自身的經驗為例,以全端開發各項技能中最常用到的部分進行講解,讓讀者能夠快速上手掌握全端技能。
留言
avatar-img
留言分享你的想法!

































































張哲嘉的沙龍 的其他內容
Authentication create root user In the mongo shell, create a root user to handle everything as follows. mongod.cfg connection Replication
I’m sure that I would forget it again after a few months, so let’s take note of it. Installation We need to use homebrew to install certbot. renew
Introduction There are some differences between deploying a front-end framework project on the web server and deploying a back-end one. uWSGI Nginx
Introduction Flutter is a powerful framework for developing the app for different platforms without redevelopment. main.dart route routing map
msix After comparing different methods, I think the most stable way is using msix to package the windows desktop app. Installation download
Introduction Set DDNS on Google Domains To set your DDNS record on Google Domains, just follow this document. ddclient installation ddclient.conf
Authentication create root user In the mongo shell, create a root user to handle everything as follows. mongod.cfg connection Replication
I’m sure that I would forget it again after a few months, so let’s take note of it. Installation We need to use homebrew to install certbot. renew
Introduction There are some differences between deploying a front-end framework project on the web server and deploying a back-end one. uWSGI Nginx
Introduction Flutter is a powerful framework for developing the app for different platforms without redevelopment. main.dart route routing map
msix After comparing different methods, I think the most stable way is using msix to package the windows desktop app. Installation download
Introduction Set DDNS on Google Domains To set your DDNS record on Google Domains, just follow this document. ddclient installation ddclient.conf
你可能也想看
Google News 追蹤
在現代網站中,HTTPS(HTTP Secure)已成為保護用戶資料和確保網站安全的重要標準。使用 Let's Encrypt 免費的 SSL 憑證,結合 Nginx 網頁伺服器,我們可以快速將網站配置為 HTTPS,並自動將 HTTP 流量重定向到 HTTPS。本教程將介紹如何安裝 Nginx
安裝官方 nginx 先在/etc/yum.repos.d新增一個nginx.repo的檔案 並加入以下內容 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgc
Thumbnail
  在開始操作Web Service之前,要先做一些前置作業IIS的安裝,再開始建置Web Service相關內容,最後就是連線測試。   IIS(Internet Information Services)是網際網路資訊服務,可以讓網站使用HTTP/HTTPS、FTP/FTPS、SMTP 等等的
大家架站最在意什麼事情呢?最近深陷於建立自己的部落格的水深火熱當中。我想和大家分享一下我對於架站的一些雜談心得。 首先,讓我們來談談SSL。對於架站的初學者來說,SSL可能會聽起來有點高大上,但其實它是非常重要的一個東西。SSL(安全套接層)能夠保護你的網站和訪問者之間的數據傳輸安全,讓你的網
Thumbnail
可能包含敏感內容
這篇文章介紹了為什麼網站需要託管服務,以及Hostinger提供的各種託管計劃和優缺點。它強調了Hostinger的價格實惠、性能出色和用戶友好的特點。
Thumbnail
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Thumbnail
Codeigniter如果不調整設定,網址中會自帶index.php,為了符合MVC架構,通常會將它去除,本文將詳細說明處理步驟。
Networking 網路類 Get the IP address of all interfaces(顯示網路資訊): networkctl status Display all IP addresses of the host(顯示主機名稱相關): hostname -I Enable/d
Thumbnail
本篇將分享關於nginx ingress controller的基本操作,包括預先準備、流程、實際操作、將domain name 映射到Ingress LB IP、部署Demo App 驗證以及結論。
在現代網站中,HTTPS(HTTP Secure)已成為保護用戶資料和確保網站安全的重要標準。使用 Let's Encrypt 免費的 SSL 憑證,結合 Nginx 網頁伺服器,我們可以快速將網站配置為 HTTPS,並自動將 HTTP 流量重定向到 HTTPS。本教程將介紹如何安裝 Nginx
安裝官方 nginx 先在/etc/yum.repos.d新增一個nginx.repo的檔案 並加入以下內容 [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgc
Thumbnail
  在開始操作Web Service之前,要先做一些前置作業IIS的安裝,再開始建置Web Service相關內容,最後就是連線測試。   IIS(Internet Information Services)是網際網路資訊服務,可以讓網站使用HTTP/HTTPS、FTP/FTPS、SMTP 等等的
大家架站最在意什麼事情呢?最近深陷於建立自己的部落格的水深火熱當中。我想和大家分享一下我對於架站的一些雜談心得。 首先,讓我們來談談SSL。對於架站的初學者來說,SSL可能會聽起來有點高大上,但其實它是非常重要的一個東西。SSL(安全套接層)能夠保護你的網站和訪問者之間的數據傳輸安全,讓你的網
Thumbnail
可能包含敏感內容
這篇文章介紹了為什麼網站需要託管服務,以及Hostinger提供的各種託管計劃和優缺點。它強調了Hostinger的價格實惠、性能出色和用戶友好的特點。
Thumbnail
這篇文章將會提供在伺服器上安裝憑證的步驟,包括下載憑證,設定php.ini以及重新啟動Web Server等。
Thumbnail
Codeigniter如果不調整設定,網址中會自帶index.php,為了符合MVC架構,通常會將它去除,本文將詳細說明處理步驟。
Networking 網路類 Get the IP address of all interfaces(顯示網路資訊): networkctl status Display all IP addresses of the host(顯示主機名稱相關): hostname -I Enable/d
Thumbnail
本篇將分享關於nginx ingress controller的基本操作,包括預先準備、流程、實際操作、將domain name 映射到Ingress LB IP、部署Demo App 驗證以及結論。