安装和配置 Nginx 在 Linux 环境下是一个常见的任务,以下是一份基础的步骤指南,以帮助你在 Linux 系统上安装和配置 Nginx。
步骤 1: 安装 Nginx
在 Ubuntu 上:
-
打开终端。
-
使用以下命令更新软件包列表:
sudo apt update
-
安装 Nginx:
sudo apt install nginx
-
安装完成后,启动 Nginx 服务:
sudo systemctl start nginx
-
设置 Nginx 在系统启动时自动启动:
sudo systemctl enable nginx
在 CentOS 上:
-
打开终端。
-
使用以下命令安装 epel-release(额外软件包源):
sudo yum install epel-release
-
安装 Nginx:
sudo yum install nginx
-
启动 Nginx 服务:
sudo systemctl start nginx
-
设置 Nginx 在系统启动时自动启动:
sudo systemctl enable nginx
步骤 2: 配置 Nginx
-
默认情况下,Nginx 的配置文件位于
/etc/nginx/nginx.conf
。打开该文件进行编辑:sudo nano /etc/nginx/nginx.conf
-
修改配置文件内容,监听统一端口80路由到不同的应用:
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; charset UTF-8; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; } location /gateway/ {//后台统一接口URL proxy_pass http://xxxx:8400/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; proxy_redirect default; #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址 add_header 'Access-Control-Allow-Methods' 'GET,POST'; #支持的请求方式 add_header 'Access-Control-Allow-Header' 'Content-Type,*'; #支持的媒体类型 } location /test-a/ { proxy_pass http://localhost:8488/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; proxy_redirect default; #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址 add_header 'Access-Control-Allow-Methods' 'GET,POST'; #支持的请求方式 add_header 'Access-Control-Allow-Header' 'Content-Type,*'; #支持的媒体类型 } location /test-store/ { proxy_pass http://localhost:8489/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; proxy_redirect default; #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址 add_header 'Access-Control-Allow-Methods' 'GET,POST'; #支持的请求方式 add_header 'Access-Control-Allow-Header' 'Content-Type,*'; #支持的媒体类型 } location /test-b/ { proxy_pass http://localhost:8490/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; proxy_redirect default; #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址 add_header 'Access-Control-Allow-Methods' 'GET,POST'; #支持的请求方式 add_header 'Access-Control-Allow-Header' 'Content-Type,*'; #支持的媒体类型 } location /test-c/ { proxy_pass http://localhost:8491/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $remote_addr; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto "https"; proxy_redirect default; #指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值 add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址 add_header 'Access-Control-Allow-Methods' 'GET,POST'; #支持的请求方式 add_header 'Access-Control-Allow-Header' 'Content-Type,*'; #支持的媒体类型 } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } server { listen 8489; server_name localhost; client_max_body_size 10m; location / { root html/cloud_pc_store/; index index.html index.htm; } location /api { proxy_pass http://127.0.0.1:8400/api; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8490; server_name localhost; client_max_body_size 10m; location / { root html/cloud_pc_supplier/; index index.html index.htm; } location /api { proxy_pass http://127.0.0.1:8400/api; } location /dev_api{ proxy_pass http://127.0.0.1:8400/api/system/admin/uploadtoupyun; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8488; server_name localhost; client_max_body_size 10m; location / { root html/cloud_pc_admin/; index index.html index.htm; } location /api { proxy_pass http://127.0.0.1:8400/api; } location /dev_api{ proxy_pass http://127.0.0.1:8400/api/system/admin/uploadtoupyun; } location /h5 { root html/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8491; server_name localhost; client_max_body_size 10m; location / { root html/cloud_pc_shop/; index index.html index.htm; } location /api { proxy_pass http://127.0.0.1:8400/api; } location /dev_api{ proxy_pass http://127.0.0.1:8400/api/system/admin/uploadtoupyun; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8492; server_name localhost; client_max_body_size 10m; location / { root html/wms-admin/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8493; server_name localhost; client_max_body_size 10m; location / { root html/wms-ui/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 8494; server_name localhost; client_max_body_size 10m; location / { root html/wms-sms/; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
-
在配置文件中,你可以修改监听端口、服务器块等。确保你了解每个配置项的作用,并根据需要进行修改。
-
保存并退出编辑器。
-
检查 Nginx 配置是否正确:
sudo nginx -t
如果一切正常,将会显示 "syntax is okay" 和 "test is successful"。
-
重启 Nginx 以应用新的配置:
sudo systemctl restart nginx
步骤 3: 验证 Nginx 安装
-
打开你的 web 浏览器。
-
输入服务器的 IP 地址或域名。
http://your_server_ip
如果一切设置正确,你将看到默认的 Nginx 欢迎页面。
现在,你已经成功地在 Linux 环境下安装和配置了 Nginx。你可以继续学习 Nginx 的更高级配置,例如虚拟主机设置、SSL 配置等,以适应更复杂的需求。