


Detailed explanation of the configuration method of Nginx and Apache sharing port 80
This article mainly introduces the configuration method of Nginx and Apache sharing port 80. Of course, if you want Nginx not to compete with Apache for port 80, the Nginx port modification method is also attached at the end of this article. Friends who need it can refer to it
A typical Nginx Apache application solution can be that Nginx occupies port 80, filters static requests, and then dynamically requests Proxy to Apache port 8080. The advantage of Proxy reverse proxy is that when accessing, it is always port 80, and visitors will not notice any difference.
But some applications are very "smart" and recognize that the port where Apache is located is 8080, and will add the following: 8080 to all relevant hyperlinks. If it's already dead, can I still have normal access? !
There is a way to solve this problem, which is to run apache on port 80. The same server has Nginx and Apache, two httpd services, both are 80, will there be no conflict?
The following is an example.
Nginx.conf configuration
server { listen 80; server_name www.webyang.net; }
Modify it.
server { listen 192.168.3.3:80; #指定Nginx只占用某个IP的80端口。 listen 192.168.10.3:80; #如果你服务器中有多个IP,还可以指定多个。 server_name www.webyang.net; }
If you have multiple virtual hosts in Nginx, each one needs to be modified like this.
Then it’s the turn of apache’s httpd.conf
Change the original
Listen 80
to
Listen 127.0.0.1:80
Same as Nginx, specify the IP and port occupied by apache.
Save and exit, restart apache to take effect.
If you also have multiple virtual hosts on apache. There is no need to modify them one by one like Nginx, as long as they are all on port 80.
Such as:
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin hello@abc.com DocumentRoot /data/web_server/admin ServerName www.webyang.net </VirtualHost>
Do you think that everything will be fine? No.
Such an apache can only be accessed through http://127.0.0.1:80, so it makes no sense for it to occupy port 80. It is better to use 8080 for apache and 80 for nginx.
So if your server has multiple IPs at this time, in addition to binding apache to 127.0.0.1, you can also bind the IP of another network card, then the problem will be solved.
But most people only have one independent IP, so this method is a mirage for many people.
Modify an idea, apache is still port 8080, modify the conf file of one nginx domain name
location / { try_files $uri @apache; } location @apache { internal; proxy_pass http://127.0.0.1:8080; } location ~ .*.(php|php5)?$ { proxy_pass http://127.0.0.1:8080; }
At this time, the domain name All actions go through Apache, including static files.
There are also many people who write this way:
upstream zend { server 127.0.0.1:8080; } location / { proxy_pass http://zend; proxy_redirect off; 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_set_header X-Scheme $scheme; } location ~ .*.(php|php5)?$ { proxy_pass http://zend; proxy_redirect off; 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_set_header X-Scheme $scheme; }
is roughly similar.
Nginx port modification
Modify the nginx.conf file implementation. The path of this file is /usr/local/nginx/conf/nginx.conf on Linux, and the installation directory \conf\nginx.conf on Windows.
server { listen 80; server_name localhost; …… }
is changed to
server { listen 81; server_name localhost; location / { root html; index index.html index.htm; } …… }
Of course, it is changed to 8080 , 8081 can be anything, it doesn’t have to be 81, but make sure iptable allows access to this port.
Note the location configuration:
root html; #根目录,相对于安装目录 index index.html index.htm; #默认主页
By default, you put the file in the html folder in the installation directory, and you can use Nginx access.
Related recommendations:
Comparison between Nginx and Apache
##
The above is the detailed content of Detailed explanation of the configuration method of Nginx and Apache sharing port 80. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Configuring nginx virtual host allows multiple websites to be hosted on a single server, each with a separate domain name and root directory. The specific configuration steps include: creating a virtual host configuration file to configure the server block, specifying the server listening port, virtual host domain name and document root directory to enable the virtual host, and linking the configuration file to the enabled directory to reload nginx

How to configure Nginx for load balancing? Defines the upstream server pool and specifies the server IP and port. Define virtual hosts, listen for connections and forward them to the upstream pool. Specify the location, match the request and forward it to the upstream pool.

Methods for redirecting through Nginx are 301 permanent redirects (update links or mobile pages) and 302 temporary redirects (handling errors or temporary changes). Configuring redirection involves using location directives in server blocks, advanced features include regular expression matching, proxy redirection, and condition-based redirection. Common uses of redirects include updating URLs, handling errors, redirecting HTTP to HTTPS, and guiding users to a specific country or language version.

The methods to view the running status of Nginx are: use the ps command to view the process status; view the Nginx configuration file /etc/nginx/nginx.conf; use the Nginx status module to enable the status endpoint; use monitoring tools such as Prometheus, Zabbix, or Nagios.

The steps to configure Nginx to run PHP include: install PHP, install Nginx, edit the Nginx main configuration file to add PHP configuration, create PHP files, restart Nginx, and test PHP. After successful, a message "PHP is working!" will be displayed.

How to enable Nginx pseudostatic? Enable the MultiViews module to allow the server to search for files based on the extension. Add a pseudo-static rule to rewrite the .php URL to the matching PHP file. Ensure that the web server process has permission to access PHP files. Restart Nginx to apply changes to implement the URL map to file paths.

View Nginx version information through the following method: Direct command method: "nginx -v" output version information. View in the configuration file: Find the "version" section at the top of the configuration file. System information command: Linux: Use the "rpm -qa | grep nginx" or "dpkg -l | grep nginx" command. FreeBSD: Use the "pkg info nginx" command. Windows: Open Nginx service properties, version information is located in the General tab.

To restart nginx service, perform the following steps: 1. Stop nginx using sudo systemctl stop nginx. 2. Use sudo systemctl start nginx to start the service. 3. Reload the configuration using sudo systemctl reload nginx.
