Implementation of HTTP and HTTPS services with Nginx reverse proxy for multiple domain names

Implementation of HTTP and HTTPS services with Nginx reverse proxy for multiple domain names

Currently, Nginx has reverse proxyed two websites, namely Windows-based IIS and Linux-based Apache server, to provide web services.

Now there is a new project web page that needs to provide services to the outside world. It is necessary to add another website on the proxy server, use HTTPS access and automatically jump from HTTP to HTTPS. Since the new web page is a static page, it is deployed on the Nginx proxy server using Docker. The relevant certificates are obtained through Let's Encrypt. They are all separate certificates, and no wildcard certificates are applied for.

You only need to deploy an SSL certificate on the Nginx proxy side. You can also implement HTTPS access without deploying SSL on the backend.

Nginx proxy server configuration:

worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
 worker_connections 1024;
}

http {
 include /usr/local/nginx/conf/mime.types;
 default_type application/octet-stream;

 log_format main '$remote_addr - $remote_user [$time_local] "$request" '
      '$status $body_bytes_sent "$http_referer" '
      '"$http_user_agent" "$http_x_forwarded_for"';

 access_log /var/log/nginx/access.log main;

 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;

upstream dx.exzel.co.nz {

 server 127.0.0.1:8080;
}

upstream mybusiness.exzel.co.nz {

 server 192.168.1.252:443;
}

server {
 listen 80;
 server_name dx.exzel.co.nz;
 rewrite ^(.*) https://dx.exzel.co.nz permanent;
}
server {
 listen 443;
 server_name dx.exzel.co.nz;
 ssl on;
 ssl_certificate /etc/letsencrypt/live/dx.exzel.co.nz/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/dx.exzel.co.nz/privkey.pem;
 ssl_session_timeout 5m;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 access_log /var/log/nginx/ccieerror.log ;
 location / {
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass http://dx.exzel.co.nz;

 }
}

server {
 listen 80;
 server_name mybusiness.exzel.co.nz;
 rewrite ^(.*) https://mybusiness.exzel.co.nz permanent;
}
server {
 listen 443;
 server_name mybusiness.exzel.co.nz;
 ssl on;
 ssl_certificate /etc/letsencrypt/live/mybusiness.exzel.co.nz/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/mybusiness.exzel.co.nz/privkey.pem;
 ssl_session_timeout 5m;
 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 access_log /var/log/nginx/mybusiness.log ;
 location / {
   proxy_set_header Host $host;
   proxy_set_header X-Real-IP $remote_addr;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_pass https://mybusiness.exzel.co.nz;

 }
}

server {
 listen 80;
 server_name www.empnz.co.nz empnz.co.nz;
  location / {
    proxy_pass http://192.168.1.15 ;
    }
 }

}

This is the end of this article about the implementation of HTTP and HTTPS services for multiple domain names with Nginx reverse proxy. For more relevant content about Nginx reverse proxy HTTP and HTTPS, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope you will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Two ways to implement nginx https reverse proxy tomcat
  • Nginx server https configuration method example
  • Detailed explanation of the correct way to redirect nginx server http to https
  • Nginx build https server tutorial
  • Detailed explanation of configuring HTTPS (NGINX) on Alibaba Cloud LINUX server
  • How to build HTTPS server with Nginx and force HTTPS access
  • Problems with configuring https server and reverse proxy with Nginx under Windows

<<:  Examples of preview functions for various types of files in vue3

>>:  Examples of correct use of maps in WeChat mini programs

Recommend

MySQL 8.0.12 installation and configuration method graphic tutorial (windows10)

This article records the installation graphic tut...

Understand the basics of Navicat for MySQL in one article

Table of contents 1. Database Operation 2. Data T...

Quickjs encapsulates JavaScript sandbox details

Table of contents 1. Scenario 2. Simplify the und...

Markup Language - List

Standardized design solutions - markup languages ...

js native waterfall flow plug-in production

This article shares the specific code of the js n...

A Preliminary Study on Vue Unit Testing

Table of contents Preface Why introduce unit test...

How to set Nginx to forward the domain name to the specified port

Enter /usr/local/nginx/conf sudo cd /usr/local/ng...

Solution to win10 without Hyper-V

Are you still looking for a way to enable Hyper-v...

How to install and persist the postgresql database in docker

Skip the Docker installation steps 1. Pull the po...

Simple example of HTML text formatting (detailed explanation)

1. Text formatting: This example demonstrates how...

A brief discussion on the problem of Docker run container being in created state

In a recent problem, there is such a phenomenon: ...