在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
抄自 https://www.cnblogs.com/j-star/p/8785334.html 个人理解 nginx端口设置为80,简称n tomcat端口设置为其他,例如8080,简称t php网站和javaweb网站域名解析到服务器上面 当访问java域名时,n判断为java网站,就跳转到tomcat 当访问php域名时,n判断为php网站,就不跳转了 n就是个快递员
http中的server可以添加多个,每一个就是一个判断吧(大概) 下面是我的一个n的配置文件,第一个server是自带,第二个是判断javaseb的 # power by www.phpStudy.net #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; #tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 128k; fastcgi_buffers 4 128k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; #gzip on; gzip on; gzip_min_length 1k; gzip_buffers 4 32k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; gzip_disable "MSIE [1-6]."; server_names_hash_bucket_size 128; client_max_body_size 100m; client_header_buffer_size 256k; large_client_header_buffers 4 256k; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; root "C:/php/XXX/WWW/test"; location / { index index.php index.html index.htm l.php; autoindex off; } #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 "C:/php/XXX/WWW/test"; } # 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(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^((?U).+\.php)(/?.+)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } server{ listen 80; server_name www.XXX.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://www.XXX.com:8080; index index.html index.htm; } } # 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; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} include vhosts.conf; }
以下是摘抄的内容
Nginx是一款并发能力强。 下面就详细的说一说如何用Nginx实现反向代理。 首先:来做点准备工作,最少两个tomcat,另外设置两个域名并解析到本地ip(因为nginx是直接配置域名) (1)准备两个tomcat分别设置两个tomcat的/conf/server.xml中的端口号,如下 tomcat1端口号分别设置为:8205 8280 8209 tomcat2端口号分别设置为:8215 8281 8219
(2)添加测试内容分别删除目录webapps下所有文件,新建一个文件夹ROOT,并在该目录下新建index.html 内容可以设置为:这里是8280端口。(另一个:这里是8281端口。)
(3)启动两个tomcat
(4)分别访问两个tomcat下的项目访问下面两个网址: 127.0.0.1/8280 127.0.0.1/8281 如果能够访问到对应的index.html文件就说明tomcat配置且启动成功。
(5)设置两个域名并做解析修改hosts文件,目的是为了设置2个域名, tomcat1.com和 tomcat2.com并且解析到本地ip:127.0.0.1 路径:C:\Windows\System32\drivers\etc 打开hosts文件,加上(如果修改后无法保存,可以把hosts文件复制到桌面,修改完成后再替换原有hosts文件) 添加内容如下: 127.0.0.1 tomcat1.com
(6)测试域名是否解析成功127.0.0.1/8280;127.0.0.1/8281分别修改为 tomcat1.com:8280;tomcat2.com:8281
如果显示结果如上图所示,说明域名设置并解析成功。
下面开始正式配置Nginx服务器的方向代理。
1. 下载、安装Nginx服务器
输入网址:http://nginx.org/en/download.html ,选个合适的版本,下载后解压到合适的路径。 解压后,如图所示:nginx.exe可以直接运行,但是不建议。 2. 配置反向代理
打开/conf/nainx.conf文件,删除server{ …… },或者注销掉 重新添加server{ } listen:监听的端口号 server_name: 访问域名 location :这里配置为/ 直接匹配端口下的默认ROOT下的项目,location内容很广泛, 参见:https://segmentfault.com/a/1190000009651161 proxy_pass :为项目的实际访问地址 server { listen 80; server_name tomcat1.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8280; index index.html index.htm; } } server { listen 80; server_name tomcat2.com; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://127.0.0.1:8281; index index.html index.htm; } }
3.启动、关闭、重启Nginx服务器
打开cmd.exe运行命令。 注意:一定要在nginx.exe文件所在的文件夹下操作。 (1)启动:H:\nginx-1.12.2>start nginx 或H:\nginx-1.12.2>nginx.exe 注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。
(2)停止:H:\nginx-1.12.2>nginx.exe -s stop 或H:\nginx-1.12.2>nginx.exe -s quit 注:stop是快速停止nginx,可能并不保存相关信息;quit是完整有序的停止nginx,并保存相关信息。
(3)重新载入Nginx:H:\nginx-1.12.2>nginx.exe -s reload 当配置信息修改,需要重新载入这些配置时使用此命令。
(4)重新打开日志文件:H:\nginx-1.12.2>nginx.exe -s reopen
4. 测试是否配置成功
输入域名:tomcat1.com和tomcat2.com
如果输入域名后显示如上图,即为成功配置。
5.可能会遇到的问题(进程关闭失败)
在使用的过程中,你可能会遇到一个很奇葩的问题,就是当关闭命令执行了无数遍,页面却还是可以直接用域名访问。 这个时候就说明你的进程并没有真正关闭,我们可以用命令来查询一下: cmd中输入:netstat -an|find "0:80" 如果有,说明真的没有关闭这个进程。没有,那就看看是不是浏览器缓存的问题。 针对进程不能正常关闭,可以用如下命令来关闭:taskkill /F /IM nginx.exe > nul
以上就是用nginx服务器做反向代理服务器的全部内容,希望对你有所帮助。 |
2022-07-29
2022-08-17
2022-11-06
2022-07-30
2022-08-17
请发表评论